NEWS
[Gelöst] Fragen zu Blockly
-
Hallo zusammen,
ich bin gerade dabei meine laufenden Programme aus der CCU zu ioBroker umzuziehen.
Ich möchte diesen Thread gern dazu nutzen, um hierbei auftretende Fragen zu stellen.
Hier kommen gleich die ersten zwei.
Wenn ich den Trigger Astro verwende, habe ich dort diverse Auswahlmöglichkeiten. Siehe Screen.
Gibt es irgendwo eine Beschreibung, was jede Option genau bedeutet?
Denn mir stellt sich die Frage, ob der Punkt Sonnenuntergang nur auf die exakte Zeit triggert, oder wird der Punkt so lange getriggert, bis der Sonnenaufgang eingetreten ist?
Hieraus ergibt sich die zweite Frage.
Was ist der Unterschied zwischen Sonnenuntergang und Nachts? Die CCU ist nicht so umfangreich und unterscheidet dies nicht.
Ich möchte damit realisieren, dass die Innenbeleuchtung morgens um 6.30 Uhr angeht - Aber nur, wenn die Sonne noch nicht aufgeht/aufgegangen ist.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="ti%uq4%}0@d6|!#SXG[F" x="-862" y="-37"><field name="COMMENT">Auf Sonnenuntergang triggern</field>
! <next><block type="astro" id="e88[NtF.mvBq6+UB{v"><field name="TYPE">sunset</field> ! <field name="OFFSET">0</field> ! <statement name="STATEMENT"><block type="comment" id="}O%ss,<EMAIL email=" nwb9waowzo@g.p"="">Nwb9waOWZo@g.p"> ! <field name="COMMENT">Uhrzeit prüfen</field> ! <next><block type="controls_if" id="eE4*TE?IpFtUX-SojE;~"><value name="IF0"><block type="time_compare" id="1q!*M=];/.Qcl.C^
Rk"><mutation end_time="false"></mutation>
! <field name="OPTION">==</field>
! <field name="START_TIME">06:30</field></block></value>
! <statement name="DO0"><block type="comment" id="fX8yDY5G^(AX;,xOEUUX"><field name="COMMENT">Schalte Verbraucher Ein</field>
! <next><block type="control" id="aNQn#nCJ*!(6w)@_69,m"><mutation delay_input="false"></mutation>
! <field name="OID">hm-rpc.0.LEQ0183923.1.STATE</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="OYydOWA){Xjz[oqAL|@"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control" id="Q.xnva^y+xxscw8xN8U5"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.0.LEQ0182432.1.STATE</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">100</field>
! <field name="UNIT">ms</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="EF57y=PVLAQ^h@s=g57Q"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control" id="0+%(toZxj-LYh+{[Oq"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.0.LEQ0183897.1.STATE</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">200</field>
! <field name="UNIT">ms</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="^h`m-#l~hNmxI5{JT1@p"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control" id="rTbod?cMUg/zZ#[;M.T"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.1.LEQ0116694.4.STATE</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">300</field>
! <field name="UNIT">ms</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="0jf)q:^fH3@eK:==55Aw"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control" id="OFbXh;Ims;k2z}Ml[u6u"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.1.KEQ1056370.4.STATE</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">400</field>
! <field name="UNIT">ms</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id=",h]eQ^LG=)oKJcN0/oL,"><field name="BOOL">TRUE</field></block></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></xml>Vielen Dank im Voraus.
Grüße,
Stefan
-
Es wird auf die entsprechende Zeit getriggert.
Man findet hier zb eine Erklärung:
-
Sorry, aber Dein Link funktioniert nicht.
Eigentlich habe ich gehofft, dass es eine Definition bei Blockly gibt. Jetzt hast Du mir mit Deiner Antwort zwar schon etwas geholfen, doch wie sieht es mit den Auswahlmöglichkeiten aus? Welchen Punkt muss ich auswählen, damit ich oben beschriebenen Anforderungen umsetzen kann? Ist vielleicht Nacht das richtige?
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk
-
Sorry, aber Dein Link funktioniert nicht.
Eigentlich habe ich gehofft, dass es eine Definition bei Blockly gibt. Jetzt hast Du mir mit Deiner Antwort zwar schon etwas geholfen, doch wie sieht es mit den Auswahlmöglichkeiten aus? Welchen Punkt muss ich auswählen, damit ich oben beschriebenen Anforderungen umsetzen kann? Ist vielleicht Nacht das richtige?
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk `
der Link von lobomau geht… so ganz neben bei... AD Blocker vielleicht an ??? ansonsten im google nach
wiki Dämmerung
suchen ..bums die ersten 2 Links
ansonsten hier ein Script mit dem du selber ersehen kannst was was ist
// Astrozeiten für heute - V1.0 log("====================="); log("Astro Werte für heute"); log("====================="); //----------------------------------------------------------------- Werte vom 3.12.2015 var nightEnd = getAstroDate("nightEnd"); log(" (0) nightEnd (Ende der Nacht)........................: " + nightEnd.toLocaleTimeString()); // 05:37 var nauticalDawn = getAstroDate("nauticalDawn"); log(" (1) nauticalDawn (naut. Dämmerung Morgens)...........: " + nauticalDawn.toLocaleTimeString()); // 06:13 var dawn = getAstroDate("dawn"); log(" (2) dawn (Dämmerung Morgens).........................: " + dawn.toLocaleTimeString()); // 06:52 var sunrise = getAstroDate("sunrise"); log(" (3) sunrise (Sonnenaufgang)..........................: " + sunrise.toLocaleTimeString()); // 07:26 var sunriseEnd = getAstroDate("sunriseEnd"); log(" (4) sunriseEnd (Ende des Sonnenaufgangs).............: " + sunriseEnd.toLocaleTimeString()); // 07:26 var goldenHourEnd = getAstroDate("goldenHourEnd"); log(" (5) goldenHourEnd (Ende der Golden Hour VM)..........: " + goldenHourEnd.toLocaleTimeString()); // 08:17 var solarNoon = getAstroDate("solarNoon"); log(" (6) solarNoon (Mittag)...............................: " + solarNoon.toLocaleTimeString()); // 11:49 var goldenHour = getAstroDate("goldenHour"); log(" (7) goldenHour (Start der Golden Hour NM)............: " + goldenHour.toLocaleTimeString()); // 15:22 var sunsetStart = getAstroDate("sunsetStart"); log(" (8) sunsetStart (Start des Sonnenuntergangs).........: " + sunsetStart.toLocaleTimeString()); // 16:08 var sunset = getAstroDate("sunset"); log(" (9) sunset (Sonnenuntergang).........................: " + sunset.toLocaleTimeString()); // 16:12 var dusk = getAstroDate("dusk"); log("(10) dusk (Dämmerung Abends)..........................: " + dusk.toLocaleTimeString()); // 16:47 var nauticalDusk = getAstroDate("nauticalDusk"); log("(11) nauticalDusk (naut. Dämmerung Abends)............: " + nauticalDusk.toLocaleTimeString()); // 17:25 var night = getAstroDate("night"); log("(12) night (Start der Nacht)..........................: " + night.toLocaleTimeString()); // 18:02 var nadir = getAstroDate("nadir"); log("(13) nadir (Mitternacht)..............................: " + nadir.toLocaleTimeString()); // 23:49 log("====================="); var today = new Date(); var tomorrow = today.setDate(today.getDate()+1); var tomorrowNight = getAstroDate("night", tomorrow); log("Night starts tomorrow at " + tomorrowNight.toLocaleTimeString());
im log stehen dann die Zeiten von heute
-
Hi,
Danke für das Script, werde ich mir zu Hause mal anschauen. Aber gibt es auch eine Astrofunktion für „wenn noch Licht von draußen kommt“?
Gesendet von iPhone mit Tapatalk Pro
-
Hi,
Danke für das Script, werde ich mir zu Hause mal anschauen. Aber gibt es auch eine Astrofunktion für „wenn noch Licht von draußen kommt“? `
Woher soll den die Astrofunktion wissen ob bei Dir noch Licht von außen kommt?Da brauchst Du schon einen Helligkeitsmesser oder einen Bewegungsmelder wie den von HM.
Grüße
-
Danke für das Skript. Die Zeiten helfen mir super weiter.
Gesendet von iPhone mit Tapatalk
-
Guten Abend,
ich bin jetzt an einem CCU Programm angekommen, welches ein Skript beinhaltet. Hierzu benötige ich nochmal Hilfe.
Das Programm sieht aktuell so aus:
Hier noch das Skript:! string url="'http://192.168.xxx.xxx:50000/tasker=Einschalten'"; dom.GetObject("CUxD.CUX28xxxxx:1.CMD_SETS").State("wget -q -O /dev/null " # url); dom.GetObject("CUxD.CUX28xxxxx:1.CMD_RUNS").State("1");
Jetzt möchte ich dieses ebenfalls zu ioBroker übertragen. Ich habe schon etwas probiert und weiss aktuell nicht wie ich es umsetzen kann. Aktuell sieht das Programm in Blockly so aus:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="Ws5}1=mhHYYZL~L3)yk" x="-688" y="-563"><field name="COMMENT">Bewegung erkennen</field> ! <next><block type="on" id="xrT9#GKCWP8np{rxHNi
"><field name="OID">hm-rpc.0.LEQ023xxxx.1.MOTION</field>
! <field name="CONDITION">any</field>
! <statement name="STATEMENT"><block type="comment" id=":E|~726.UlM4O9v1hw{c"><field name="COMMENT">Skript</field></block></statement></block></next></block></xml>Wie gehe ich am besten vor? Wie kann ich das vorhandene Skript weiterhin benutzen?
In Funktionen habe ich Bausteine mit Javascript gesehen. Weiss aber nicht wie ich vorgehen muss.
Vielen Dank im Voraus.
Grüße,
Stefan
-
Guten Abend,
ich bin jetzt an einem CCU Programm angekommen, welches ein Skript beinhaltet. Hierzu benötige ich nochmal Hilfe.
Das Programm sieht aktuell so aus:
Bildschirmfoto 2017-11-09 um 00.23.07.png
Hier noch das Skript:
! string url="'http://192.168.xxx.xxx:50000/tasker=Einschalten'"; dom.GetObject("CUxD.CUX28xxxxx:1.CMD_SETS").State("wget -q -O /dev/null " # url); dom.GetObject("CUxD.CUX28xxxxx:1.CMD_RUNS").State("1");
Jetzt möchte ich dieses ebenfalls zu ioBroker übertragen. Ich habe schon etwas probiert und weiss aktuell nicht wie ich es umsetzen kann. Aktuell sieht das Programm in Blockly so aus:
Bildschirmfoto 2017-11-09 um 00.14.35.png
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="Ws5}1=mhHYYZL~L3)yk" x="-688" y="-563"><field name="COMMENT">Bewegung erkennen</field> ! <next><block type="on" id="xrT9#GKCWP8np{rxHNi
"><field name="OID">hm-rpc.0.LEQ023xxxx.1.MOTION</field>
! <field name="CONDITION">any</field>
! <statement name="STATEMENT"><block type="comment" id=":E|~726.UlM4O9v1hw{c"><field name="COMMENT">Skript</field></block></statement></block></next></block></xml>Wie gehe ich am besten vor? Wie kann ich das vorhandene Skript weiterhin benutzen?
In Funktionen habe ich Bausteine mit Javascript gesehen. Weiss aber nicht wie ich vorgehen muss.
Vielen Dank im Voraus.
Grüße,
Stefan `
Keiner eine Idee?Derzeit habe ich über 35 CCU-Programme erfolgreich in ioBroker abbilden können. Eine Skript in eine Funktion innerhalb von Blockly zu integrieren ist leider neu.
Dutchman und Rantanplan, ihr habt mir Blockly erfolgreich näher gebracht.
Würdet ihr euch meine Frage bitte nochmal angucken?
Vielen, vielen Dank im Voraus.
Grüße,
Stefan
-
Dutchman und Rantanplan, ihr habt mir Blockly erfolgreich näher gebracht.
Würdet ihr euch meine Frage bitte nochmal angucken?
Vielen, vielen Dank im Voraus.
Grüße,
Stefan `
:mrgreen: :mrgreen: :mrgreen:
Hi Stefan,
Ich bin leider EXTREM schlecht mit dem CCU script .dummer bube such was usw verstehe da weniger von als meine katze !
Wen ich es richtig verstehe willst du ein HTTP request senden mit:
http://{adresse};status eines objects
oder etwas in der art ?
Koenntest du mal bitte functionel beschreiben was du genau haben moechtest ? wen es darum geht einen HTTP befehl zu erstellen mit variabelen aus objecten dan ist das moeglich
~Dutch
-
Auf meinem Wandtablet läuft VIS und lässt mich mit Homematic interagieren. Das Tablet ist mit einem Rahmen in die Wand eingelassen, so dass keine Hardware Tasten sichtbar sind. Um es einzuschalten, wird das Tablet aktuell über einen Homematic Bewegungsmelder aktiviert.
Auf dem Tablet ist Tasker und Home24 als APP installiert. Home24 kann Befehle per Http empfangen, Tasker kann diese bei entsprechender Konfiguration empfangen.
Der Bewegungsmelder löst also bei Bewegung ein Programm aus. Das Programm enthält folgendes Script:
! string url="'http://192.168.xxx.xxx:50000/tasker=Einschalten'"; dom.GetObject("CUxD.CUX28xxxxx:1.CMD_SETS").State("wget -q -O /dev/null " # url); dom.GetObject("CUxD.CUX28xxxxx:1.CMD_RUNS").State("1");
Hier kann man sehen, dass an die IP des Tablets ein Befehl an Tasker gesendet wird.
"http://192.168.xxx.xxx:50000/tasker=Einschalten"
Warum hierzu ein virtuelles Gerät CuxD notwendig ist, da muss ich gerade passen. Ich vermute, da es sonst nicht möglich ist einen URL String zu senden.
Hilft das?
Grüße,
Stefan
-
Hier kann man sehen, dass an die IP des Tablets ein Befehl an Tasker gesendet wird.
"http://192.168.xxx.xxx:50000/tasker=Einschalten"
Warum hierzu ein virtuelles Gerät CuxD notwendig ist, da muss ich gerade passen. Ich vermute, da es sonst nicht möglich ist einen URL String zu senden. `
na siehste diese sprache verstehe ich, das geht in iObroker einfacher on CUxD mit dem HTTP block:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="ygLo.J.~b@2+jRruR-LF" x="88" y="38"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="D,@Z]?}{j:}y[K_Ab3Mp"><field name="oid">default</field></shadow></value> <statement name="STATEMENT"><block type="request" id="i`:mG[gS1E*VsW.*rJA5"><mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <value name="URL"><shadow type="text" id="zAzjQ@/+0^Wp+|z,ct(c"><field name="TEXT">http://192.168.xxx.xxx:50000/tasker=Einschalten</field></shadow></value></block></statement></block></xml>
-
Habe ich noch nicht ausprobiert.
Aber mit diesen Bausteinen würde ich es mal versuchen.
Grüße
-
Danke. Teste es gerade. Bin gespannt.
Sehe ich es richtig, dass ich CuxD jetzt nicht mehr brauche?
Zumindest in ioBroker mache ich damit nicht mehr. Dann bräuchte ich auch die CuxD Geräte nicht einlesen.
Spart wieder etwas Performance.
Grüße,
Stefan
-
Danke. Teste es gerade. Bin gespannt.
Sehe ich es richtig, dass ich CuxD jetzt nicht mehr brauche?
Zumindest in ioBroker mache ich damit nicht mehr. Dann bräuchte ich auch die CuxD Geräte nicht einlesen.
Spart wieder etwas Performance.
Grüße,
Stefan `
Das kan ich nicht beurteilen keine ahnung wofür du cuxd einsetzt.
Wen es nur dieses Beispiel war ja
–-----------------------
Send from mobile device
-
Danke. Teste es gerade. Bin gespannt.
Sehe ich es richtig, dass ich CuxD jetzt nicht mehr brauche?
Zumindest in ioBroker mache ich damit nicht mehr. Dann bräuchte ich auch die CuxD Geräte nicht einlesen.
Spart wieder etwas Performance.
Grüße,
Stefan `
Wenn du keine Geräte im HM verwendest, die von CuxD eingerichtet sind brauchst du das nicht mehr. Aber CuxD solltest du vielleicht auf der CCU drauf lassen, man denke nur an die Probleme, die viele Nutzer (ich auch!) bei der Zeitumstellung hatten, da war dann der Zugriff über CuxD hilfreich! Von ioBroker aus brauchst du das ja nicht mehr abfragen.
Enrico
-
Das mache ich so. Danke.
Jetzt ist auch das letzte Programm auf ioBroker übertragen. Mit dem URL-Funktionsbaustein hat es auf Anhieb geklappt.
Jetzt geht es darum die vorhandenen 40 Programme zu reduzieren. Ich habe, wie vorher in der CCU auch, einzelne Programme, für das Ein- und Ausschalten verschiedener Geräte. Das heißt, ich schalte Geräte Innen über Astro an. Für das Ausschalten nach Zeit, oder Astro habe ich dann jeweils noch ein Programm.
Mit Sicherheit geht das deutlich einfacher und komfortabler.
Wenn heute Abend die Kiddies im Bett sind, werde ich hier mal ein Szenario, mit Bitte um Optimierung einstellen.
Ich hoffe das ist in Ordnung.
Bis hierher Danke an alle, die mich unterstützt haben.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk
-
Hey Stefan,
Klinkt ja sehr gut !
Gute Idee, befohr man anfängt zu bauen scenarios aufschreiben und als leitdraht nehmen
–-----------------------
Send from mobile device
-
Von der Denkweise her, habe ich auch keine Probleme. Ich weiß halt nur noch was jeder einzelne Baustein alles kann. Aber ich lerne dazu. [emoji51]
Gesendet von iPhone mit Tapatalk
-
Von der Denkweise her, habe ich auch keine Probleme. Ich weiß halt nur noch was jeder einzelne Baustein alles kann. Aber ich lerne dazu. [emoji51]
Gesendet von iPhone mit Tapatalk `
die seite der docu kennst du ? da gibt es einige hinweise zu den bloecken