Beiträge von TeNNo2k5
-
-
Wie bereits in einem anderen Thread angekündigt, hier mein Script um ein Tasmota geflashtes Gerät über die Nacht quasi in einen Energiesparmodus zu setzen.
Das Script setzt für die Nacht den Sleep Wert des Gerätes auf „250“, und setzt am Morgen den Wert wieder auf „0“.
Der Sleep Befehl gibt an für wieviel Millisekunden sich das Gerät, wenn es sich Leerlauf befindet maximal schlafen legen darf. Meine anderen Geräte laufen durchweg mit dem Sleep Wert 50, dies spart bis zu 50% Energie und resultiert in einer geringen Schaltverzögerung (circa eine Sekunde), beim Sonoff POW sollte aber für eine korrekte Energiemessung der Sleep Zustand nicht aktiviert werden.
Da mein POW nur für die Überwachung und Energiemessung der Waschmaschine zuständig ist, und da ich nachts i.d.R. keine Wäsche wasche, muss der POW auch in diesem Zeitraum nicht auf voller Leistung betrieben werden.
Das Script wurde getestet mit Tasmota 5.12.0 und 5.13.0
schimmer-media.de/index.php?attachment/2480/
Code
Alles anzeigen<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id="|UAA,}`li9dTOaRK`s*G" x="-462" y="-212"> <field name="COMMENT">Nachtsparmodus aus</field> <next> <block type="schedule" id="1BP3[2i+a?xVJEo4L1Jg"> <field name="SCHEDULE">00 08 * * *</field> <statement name="STATEMENT"> <block type="comment" id="ZA|Y[1mdN^+m1z=Jtd6z"> <field name="COMMENT">sleep state = off</field> <next> <block type="request" id="Ra:G:5}UTo`5:WW6)@LU"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="/xqLlyJ0,A4%|][mKs/c"> <field name="TEXT"></field> </shadow> <block type="text_join" id="_,B@~N@aa@V#Z8S2S#mz"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="Uq!zDm+Cz5-H2v5xLBt@"> <field name="TEXT">http://</field> </block> </value> <value name="ADD1"> <block type="get_value" id="b5aK!],o*=_cB]CDiNR%"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff Pow.INFO.IPAddress</field> </block> </value> <value name="ADD2"> <block type="text" id="_|[hclV-u~I4%ae,DdpX"> <field name="TEXT">/cm?user=admin&password=xxx&cmnd=sleep%20off</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="debug" id="mWrvPQPhF9Fg}:OIhnnU"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="-/c;6x_H*4%7Y!+oqC;C"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="RU4~p]k564cy=A3(,d^#"> <field name="VAR">result</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="1;gWF35x:/Ry.5Tgd8H?"> <field name="COMMENT">Nachtsparmodus an</field> <next> <block type="schedule" id="cd?^}0c(QirI|Wzp%EtT"> <field name="SCHEDULE">30 21 * * *</field> <statement name="STATEMENT"> <block type="comment" id=".HSi[4NeT#(y}O!;weXY"> <field name="COMMENT">sleep state = 250 mSec</field> <next> <block type="request" id="@`?U30CVy6,k2WtKE1E*"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="8..{yOXyD^He=?59~dZw"> <field name="TEXT"></field> </shadow> <block type="text_join" id="^3l^!Ha3%azap[wJ3*sU"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="/Y8Fh5[p,QgQvSE]3iTR"> <field name="TEXT">http://</field> </block> </value> <value name="ADD1"> <block type="get_value" id="vDrZqNCL5A7{LHSx,tvb"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff Pow.INFO.IPAddress</field> </block> </value> <value name="ADD2"> <block type="text" id="Iv(JOsBMvA[?c/|#K-FF"> <field name="TEXT">/cm?user=admin&password=xxx&cmnd=sleep%20250</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="debug" id="F/gc2!rV)aB-,2Coo.|{"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="-/c;6x_H*4%7Y!+oqC;C"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="PDI`cxb22///B5,%PVeV"> <field name="VAR">result</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </xml>
PS: Die Befehle werden per HTTP Request gesendet, da ich nicht herausfinden konnte ob es möglich ist mit dem Sonoff Adapter MQTT Befehle per Script abzusenden, und ich wollte auch keine weitere MQTT Instanz konfigurieren.
-
Nimm einfach nur den umschalt block..
-
Befehlsübersicht gibt es hier: https://github.com/arendst/Sonoff-Tasmota/wiki/Commands
Weitere Infos zum Stromverbrauch hier: https://github.com/arendst/Sonoff-Tasmota/wiki/Energy-Saving
Die Staus Led lässt aber glaub ich nicht komplett ausschalten.
Beim Sleep befehl musst du abwägen welche Einstellung für deinen Einsatzzweck am besten geeignet ist wegen der Schalt Verzögerung, mein S20 ist mit sleep 50 konfiguriert und schaltet dadurch circa eine Sekunde verzögert.
Für meinen Pow teste ich gerade ein Script das für die Nacht den Wert auf 250 setzt und am morgen den Zustand auf 0 zurückstellt, um in der Nacht Strom zu sparen, das Script wollte ich dann sowieso posten wenn ich mir sicher bin das es zuverlässig funktioniert. -
Jetzt bin ich am Überlegen mir eine Yeelight fürs Badezimmer zuzulegen, mit Script Steuerung ähnlich wie Dennis es im Video gezeigt hat + eventuell einen Dash Button zum Umschalten auf die volle Helligkeit fürs Rasieren etc.
Was für mich jetzt aber auschlaggebend wäre, dass die Yeelight dauerhaft nur über das lokale Netzwerk betrieben werden kann (nach der Einrichtung), Verlust der App Steuerung ist mir hierbei egal dafür habe ich ja den ioBroker, deswegen die Frage an die Community hat jemand von euch den Netzwerkverkehr ins Internet bei der Yeelight blockiert?
-
Ok dann nimm einfach nur einen umschalt Block, und wähle den Power Wert von deinem Basic.
Das war es dann schon, Script speichern und ausführen kannst du das Script mit dem Symbol mit den geschwungen Pfeilen auf der linken Seite (In der Symbolleiste mit dem Play, Papierkorb Buttons..)
-
Du hast Logik Fehler im Script:
- beim ersten Screenshot prüfst du ob dein Gerät eingeschaltet ist und schaltest es dann per Web Request ein, das gleiche mit dem ausgeschalteten Zustand.
- beim zweiten Screenshot schaltest du das Gerät ein und sofort wieder aus.
Vielleicht ist es einfacher wenn du beschreibst was du eigentlich bezwecken möchtest mit deinem Script.
-
Es hat zwar gedauert, aber jetzt konnte ich mich endlich wieder dem Thema widmen.
Den Adapter für den Sauger hatte ich schon installiert, hier mal mein nicht funktionierendes Blockly Script: Sobald der Robi saugt soll das Script die Variable "roboter_an" auf wahr setzen.
schimmer-media.de/index.php?attachment/2376/
Könnt Ihr mir einen Tip geben wo der Fehler liegen könnte, ich bin absolut nicht firm mit Blockly?
Danke.
Gruß
Ja.rod
Ändere Cleaning(5) zu 5, dann sollte die Objekt Abfrage funktionieren.
-
text2command Adapter auch konfiguriert, sowie im ersten Screenshot unter dem Code zu sehen?
-
Das ist ja ein komisches verhalten, wie werden die LEDs angesteuert per GPIO oder Usb? Und Hyperion ist auf Raspbian installiert oder per Kodi (Libreelec) als Addon?
-
Alternativ gehen auch Femal Jumper Kabel + Büroklammer als Stift Ersatz. Nicht die schönste Lösung aber bis jetzt habe ich so jeden Sonoff geflasht.
-
Das Ereignis verhalten ist normal, wichtig ist das im Log keine Fehler produziert werden.
-
Wenn einer der Pi's als WLAN Ap fungiert dann ja, aber IMHO bezweifle ich das sein Setup so aufgebaut ist
-
Naja er hat ja Probleme mit der Reichweite seines Wlans, und nicht mit der Reichweite des Wlan Empfangs vom Rpi dementsprechend wird im ein Wlan Usb Stick wenig bringen.
- Für das Wlan einen Repeater verwenden wie Sakaschi geschrieben hat, oder einen zweiten Router als Acces Point solltest du in den anderen Stockwerken eventuell Netzwerkkabel verlegt haben.
- Für den Homematic Rpi eine größere Antenne verwenden (wenn möglich) oder den Homematic RPi im 1. Stockwerk betreiben, sozusagen als goldene Mitte um die Reichweite für beide Stockwerke zu gewährleisten.
-
-
ich hatte genau das gleiche Problem + das die Telegram Meldungen doppelt ankamen^^
Bei mir hat ein Downgrade des Telegram Adapters auf die Version 1.1.4 geholfen, starte mal deinen iobroker neu vielleicht hilft das.
-
Ok das Tut bezieht sich auf zwei Raspberry Pi Systeme, also wird auf beiden Systemen der User „pi“ verwendet, bitte nicht den root user benutzen!
1.) SSH Verbindung zum iobroker Raspberry aufbauen und folgende Befehle absetzen:
schimmer-media.de/index.php?attachment/1806/
Die Abfrage für die passphrase ohne Eingabe einfach mit Enter bestätigen.
Nun geben wir den gerade generierten puplic key mit folgenden Befehl aus:
schimmer-media.de/index.php?attachment/1807/
Den Key markieren und kopieren diesen irgendwo zwischen Speichern z. B. im Editor da wir ihn später benötigen, wichtig dabei ist das der Key aus einer einzelnen Zeile besteht beim Kopieren kann es eventuell passieren das ein Zeilenumbruch automatisch eingefügt wird!
Nun bauen wir eine SSH Verbindung vom iobroker Raspberry zum ambilight Raspberry auf:
Hier geben wir nun folgende Befehle ein:
schimmer-media.de/index.php?attachment/1808/
Wir befinden uns jetzt im nano Editor hier fügen wir den vorher kopierten puplicy key ein und speichern die Datei mit der Tasten Kombination „STRG + O“ „Enter“ „STRG + X“ ab (Die + Zeichen müssen nicht gedrückt werden)
Jetzt befinden wir uns wieder in der Shell und können die letzten befehle ausführen:
Codechmod 700 .ssh && chmod 600 .ssh/authorized_keys sudo chown $USER .ssh/authorized_keys sudo service ssh restart && exit
Durch den letzten Befehl „exit“ sollten wir uns nun wieder in der Shell vom iobroker Raspberry befinden, nun können wir zum Testen wieder eine SSH Verbindung zum ambilight Raspberry aufbauen, wenn alles geklappt hat erfolgt die Verbindung automatisch und es muss kein Passwort eingeben werden.
In der iobroker Weboberfläche muss noch in der Javascript Adapter Konfiguration das „exec“ Kommando erlaubt werden, damit der von mir vorher geposte Blockly Block funktioniert!
-
Respekt vor der Anleitung sehr gut beschrieben, es geht aber etwas einfacher also ohne lokale Skripte und Simple SSH, das komplizierteste bzw. aufwendigste ist zwischen dem iobroker Linux und dem Linux des Ziel Systems die SSH Public Key Authentifizierung einzurichten, dazu kann ich bei Bedarf auch ein kleines Tutorial schreiben, danach reicht folgender Blockly Block im Script um das System auszuschalten
-
@ Woolf Hast du auch das Objekt angelegt wie auf Seite 3 beschrieben?
Zum Thema selber ich habe das Script von hawi1981 überarbeitet, weil meine Waschmaschine auch nach dem Waschvorgang noch etwas Strom Verbraucht (LEDs blinken etc)
- Es gibt nur noch einen AUS Zähler, dieser Zählt auch nur solange der Waschvorgang aktiv ist.
- Es wird nur eine fest angelegte Hilfsvariable benötigt.
- Es wird die Zeit des Waschvorgangs gemessen und über Telegram ausgegeben.
- Es wird der Stromverbrauch für den Waschvorgang gemessen und ebenfalls per Telegram ausgegeben.
Die Hilfsvariable Status_Waschmaschine_arbeitet muss einmalig vor dem ersten Waschvorgang auf den Wert false gesetzt sein, damit das Script funktioniert.
Es kann sein das Ihr die Bedingung für den Aus Zähler auf einen höheren Wert als 15 setzten müsst, je nachdem wie oft eure Waschmaschine unter den Verbrauchswert von 5 Watt fällt während des Waschvorgangs.
schimmer-media.de/index.php?attachment/1797/
schimmer-media.de/index.php?attachment/1798/
schimmer-media.de/index.php?attachment/1799/
Und hier noch der Blockly Code als Anhang, da der Code das Zeichenlimit vom Forum überschreitet
-
Kleines Update für die cmd Variante damit die Befehle mit den Rechten von User PI und nicht vom root User verarbeitet werden:
Code
Alles anzeigencreateState("javascript.0.cmd", 0); // Generiert beim starten den Datenpunkt, wenn nicht vorhanden on({ id: "javascript.0.cmd", change: 'any' }, function(obj) { exec('su pi -c '+'\"'+getState("javascript.0.cmd").val+'\"', function(err, stdout, stderr) { sendTo('telegram', "send", { text: '' + stdout + stderr }); }) });