Hallo Dennis, vielen Dank für deine tollen Videos. Das flashen der Sonoff Basics hat einwandfrei funktioniert. Auch die integration in IoBroker über MQTT funktioniert einwandfrei ( außer dem POW). Was ich gerne möchte ist, dass die Sonoff`s auch über "Programme" in Homematic zu bestimmten Zeiten oder mit einem bestimmten Ereignis schaltbar sind. Ich vermute mal, dass ich die Sonoffs dann in CUXd installieren muss. Hab aber leider keine Ahnung, welche Schalter ich hierfür nehmen muss bzw. wie ich die schalten kann. Evtl. kannst du hierüber ja mal ein Video erstellen.
Sonoff zu bestimmten Zeiten an und aus schalten
-
-
Hallo,
mich wurde auch interessieren wie man Licht einschalten kann über ioBroker z.B Alexa Schalte Flur für 1-2 min an , oder Alexa Schalte Flur in 2 min aus usw.THX
-
Für eine bestimmte Zeit ein und Aus schalten wenn man sagt, schalte ein, ist auf jeden Fall eine coole Sache die ich selbst auch noch realisieren wollte, bin selbst nicht so mega der Programmierer aber es finden sich bestimmt welche in der Community, die das in paar Minuten mit Blockly basteln und uns ein Bild posten.
Was die „Zeitschaltuhr“ betrifft mache ich das über die Alexa App, da kann man ja in den Routinen einstellen das etwas zu einer bestimmten Zeit An und zu einer anderen Zeit wieder Aus gehen soll, da mache ich auch noch ein kleines, wirklich kurzes Video drüber.
Ich denke aber das ich noch warte bis jemand ein Blockly Script postet mit dem das „Eieruhr schalten“ funktioniert, also quasi wenn man sagt „schalte Licht ein“ es automatisch nach 5 Minuten wieder aus geht.
Dann mache ich da nämlich ein Umfassendes Video zu
-
Alles kopieren und wo im Bild oben der "Blau markierte" Pfeil ist drücken. Dann einfügen.
Code<block xmlns="http://www.w3.org/1999/xhtml" type="on" id="1^1IXHS.b?M*ul+%7_wa" x="-562" y="-12"> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="O}^?7r4,x0|wj^euJWA6"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="L2JIVx(*.eFcA:|4RCzd"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pH8s.AVaIl7g}U)i60+]"> <field name="ATTR">val</field> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="jMr_mHDBXLi7`u+uxOco"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="PXce3IY+TxqKl_#8HxH%"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_ein</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="b?QiFq9_aS#{*12~dqpH"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="+oA1:x*T:RZap!e0E?JM"> <mutation delay_input="true"></mutation> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?LZpRt.e%Ua(tgsQhVl)"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="wDbsD)P_TEJzeLkwTJ?Y"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="59r3Yw=QROuzVWR}xWp7"> <field name="ATTR">val</field> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="bihX(eUAsp3![MczsH8?"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="%dc0*1HrX(LdC*s`#,/="> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="#17Y`l/p/=[H6hl?:J8F"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement></block>
Angaben sind wie aus deinem Video:
ALLE "Licht Badezimmer" = Object bei Broadlink im "000000" Ordner. Da wo gespeichert werden soll ob grad an oder aus ist. (oder Cloud Auswahl)
steuere "scriptEnable....Badezimmer ein" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht an
steuere "scriptEnable....Badezimmer aus" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht aus5 Min = Wann soll Licht ausgehen.
Ausschlaggebend ist eigentlich nur, das nach der Verzögerung von 5 Min. das Objekt "Licht Badezimmer" aktualisiert wird zu Wert= "unwar"
Dadurch wird automatisch von IoBroker der Teil von "sonst falls...mache" ausgeführt und die Lampe geht deswegen aus. -
Das volle Programm.. Willste eh haben...
1. Installiere den Adapter vis hqwidgets (auch updaten)
2. Kopieren.. Blauer Pfleil. einfügen.. Rest wie oben...
Code<block xmlns="http://www.w3.org/1999/xhtml" type="on" id="1^1IXHS.b?M*ul+%7_wa" x="-562" y="-12"> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="O}^?7r4,x0|wj^euJWA6"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="L2JIVx(*.eFcA:|4RCzd"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pH8s.AVaIl7g}U)i60+]"> <field name="ATTR">val</field> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="jMr_mHDBXLi7`u+uxOco"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="PXce3IY+TxqKl_#8HxH%"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_ein</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="b?QiFq9_aS#{*12~dqpH"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="hIjDY@g){X`^OdAgsvsc"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.countTrigger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ryqiG9-DH6~]qJ2DjieP"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="+oA1:x*T:RZap!e0E?JM"> <mutation delay_input="true"></mutation> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?LZpRt.e%Ua(tgsQhVl)"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="wDbsD)P_TEJzeLkwTJ?Y"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="59r3Yw=QROuzVWR}xWp7"> <field name="ATTR">val</field> <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="bihX(eUAsp3![MczsH8?"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="Ü0*1HrX(LdC*s`#,/="> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="#17Y`l/p/=[H6hl?:J8F"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement></block>
3. countTrigger = objects - javascript.0 - countTrigger
4. Vis Editor öffnen
5. Das kopieren :Code[{"tpl":"tplHqCircle","data":{"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.countdown","min":"0","max":"300","step":"1","displayPrevious":"true","readOnly":true,"unit":"s","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"digits":"0","is_comma":"true","descriptionLeft":"countdown","cursor":"","bgcolor":"","color":"#000000"},"style":{"left":"452px","top":"550px","width":"46px","height":"47px"},"widgetSet":"hqwidgets"}]
6. Irgendwo rechten Mausklick und "Mehr" - "Widget importieren". Dann einfügen.
7. Wenn Du nichts siehst (ein "Kreis" mit "0s") verschieb mal dein "3D Haus Bild" es wird darunter sein. Rechten Mausklick auf den Kreis und bei "mehr" - "in den Vordergrund)
8. Den "Kreis" anklicken.
9. Rechte Seite bei "Eigenschaften" des Objektes Bei "Wert" steht "300" Das sind die sec. also 300 Sec. = 5 Min.
10. Fertisch11. Ein script noch erstellen. das einfügen:
CodecreateState('countdown', 300);createState('afterCount', false);createState('countTrigger', false);function count() { setTimeout(function () { var timer = getState('countdown').val || 300; if (timer > 1) { setState('countTrigger', false); setState('countdown', timer - 1); count(); } else { setState('countdown', 0); setState('afterCount', true); } }, 1000);} on('countTrigger', function (obj) { if (obj.newState.val === true || obj.newState.val === 'true' || obj.newState.val == 1) { setState('countdown', 300); setState('afterCount', false); count(); } });
-
bei deiner Blockly programmierung, wie kommst du da an die beiden befehle vom scriptenebelt .........ein und der andere aus?
-
im iobroker muss es ja n befehl geben für dein Gerät das es An oder Aus gehn soll.. Das musst du halt "verknüpfen". Ich denk mal es wird bald ein Video geben von Ihm.
-
Das wäre gut. Ich will damit einen Wasserbrunnen zum trinken für die Katzen über einen Sonoff Basic steuern der max nach 2 min wieder aus geht damit man das nicht vergisst. Hab dein Script nachgebaut. Nur diese eine Sache fehlt. Habe nur den Sonoff Power Befehl gefunden.
-
In dem Fall kannst du bei beiden einfach den Sonoff POWER State rein machen, dieser wird dann durch true oder false gesteuert,
true für ein und false für aus
Gesendet von iPhone mit Tapatalk
-
Der letzte Punkt im Blockly muss also von wahr in unwahr geändert werden
Gesendet von iPhone mit Tapatalk
-
was wichtiges vergessen.. siehe beitrag oben. ich mach noch n kleines video..
-
Hallo Dennis, vielen Dank für deine tollen Videos. Das flashen der Sonoff Basics hat einwandfrei funktioniert. Auch die integration in IoBroker über MQTT funktioniert einwandfrei ( außer dem POW). Was ich gerne möchte ist, dass die Sonoff`s auch über "Programme" in Homematic zu bestimmten Zeiten oder mit einem bestimmten Ereignis schaltbar sind. Ich vermute mal, dass ich die Sonoffs dann in CUXd installieren muss. Hab aber leider keine Ahnung, welche Schalter ich hierfür nehmen muss bzw. wie ich die schalten kann. Evtl. kannst du hierüber ja mal ein Video erstellen.
Hi Baerny,
falls du die Lichter zum bestimmte datum oder mit eine bestimmte Frequenz steuern willst dann empfehle ich dir den fullcalendar Adapter. Da kannst du alles programmieren was eine datum, Uhrzeit und an/aus Steuerung braucht. Ist wirklich Genial.
LG
-
ccc.ggg73, vielen Dank für deinen Tipp, klappt super mit dem full calendar,
-
Zitat
falls du die Lichter zum bestimmte datum oder mit eine bestimmte Frequenz steuern willst dann empfehle ich dir den fullcalendar Adapter. Da kannst du alles programmieren was eine datum, Uhrzeit und an/aus Steuerung braucht. Ist wirklich Genial.
LG
Voll der gute Tipp, das finde ich ja auf jeden Fall mal viel besser als die ganze Zeitsteuerung über die Alexa App auf dem Smartphone zu machen, weil das ist echt ein Gefuttel.
Vielen Dank
-
Alles kopieren und wo im Bild oben der "Blau markierte" Pfeil ist drücken. Dann einfügen.
Codebroadlink.0.learnedSignals.000000.Licht_Badezimmer any EQ val broadlink.0.learnedSignals.000000.Licht_Badezimmer TRUE javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_ein FALSE TRUE broadlink.0.learnedSignals.000000.Licht_Badezimmer TRUE 5 min FALSE FALSE EQ val broadlink.0.learnedSignals.000000.Licht_Badezimmer FALSE javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_aus FALSE TRUE
Angaben sind wie aus deinem Video:
ALLE "Licht Badezimmer" = Object bei Broadlink im "000000" Ordner. Da wo gespeichert werden soll ob grad an oder aus ist. (oder Cloud Auswahl)
steuere "scriptEnable....Badezimmer ein" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht an
steuere "scriptEnable....Badezimmer aus" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht aus5 Min = Wann soll Licht ausgehen.
Ausschlaggebend ist eigentlich nur, das nach der Verzögerung von 5 Min. das Objekt "Licht Badezimmer" aktualisiert wird zu Wert= "unwar"
Dadurch wird automatisch von IoBroker der Teil von "sonst falls...mache" ausgeführt und die Lampe geht deswegen aus.THX,
benutze dass WiFi Bridge Box Controller von Mi-Light und funktioniert alles wunderbar mit mehre LED Lampen .
bekomme leider denn Script nicht hin , weiß nicht genau was ich wällen muss , ich meine richtige reinfolge
der Objekt sieht so ausschimmer-media.de/index.php?attachment/33/
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!