NEWS
[Gelöst] Szenen Adapter - Programme der CCU auslagern
-
Vielen Dank für Deine Mühe.
Ich werde mich mal ausprobieren. Wenn man das so fertig sieht, scheint es ganz einfach. Ich werd mal etwas probieren.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk
-
Über die CCU steuere ich unter anderem Rollos und Licht mit der Astrofunktion. Andere Programme laufen zeitabhängig.
Wie kann ich solche Programme/Szenen mit ioBroker umsetzen? `
soweit mir bekannt gibt es die astro nur in Scripten (blockly oder javascript).
Man koennte dan entweder die logic da bauen (blockly z.b. is vergelichbar) oder man setzt einen wert (object) der durch astro angesteuert wird und macht den rest in scenen.
Scene wird in diesem fall getriggerd durch den anderen wert. `
Es gibt noch ein Zwischending:DU kannst in Javascript die Trigger bauen und direkt die Szene auslösen
Beispiel für einen Wandtaster (Achtung! Bei batteriegespeisten Homematic-Tastern vorher ein Dummy Programm in der CCU anlegen -> Suche nach Dummy hier im Forum)
on({id: 'HM-Wandtaster-Datenpunkt.PRESS_SHORT', val: true}, function(data) { setState('scene.0.LICHT_AN_SZENE', true); });
Viele Grüße
Pix
-
Von der Sache her, finde ich Blocky sehr gut, da es gewissen Ähnlichkeiten mit den Programmen der CCU hat. Zusätzlich kann man gut sehen, was man kombinieren kann.
Nichts desto trotz brauche ich anfänglich hier und da mal Hilfe. Dann arbeite ich mich hoffentlich gut ein. [emoji854] Ansonsten weiß ich ja, wo ich mich hinwenden kann. [emoji12]
Habe grade mal testweise Dein Astro Programm nachgebaut und ein passendes Objekt eingesetzt. Sollte eigentlich funktionieren. Sieht so aus:
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... 92f022.jpg">https://uploads.tapatalk-cdn.com/20171107/e19aeda6a1805795ae8a7412ed92f022.jpg</link_text>" />
Wenn ich das Skript starte, kommt dieser Eintrag im Log:
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... 637c3f.jpg">https://uploads.tapatalk-cdn.com/20171107/f4407b8366c969deea4ce9d139637c3f.jpg</link_text>" />
Ich kann leider nicht deuten, was da bedeutet. Muss ich irgendwo noch meinen Standort hinterlegen? Sollte er doch aus der Astro Variable ziehen können.
Zusätzlich hast Du geschrieben, dass ich nicht .state nehmen soll. Ist das richtig? Soll ich lieber das Oberobjekt nehmen?
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... a87f68.jpg">https://uploads.tapatalk-cdn.com/20171107/ab0e3e9c68234b9aec2cd876cea87f68.jpg</link_text>" />
Danke für die Hilfe.
Falls es mir doch zu kompliziert wird, mache ich es mit den Szenen und den Start über Java. [emoji87] Hoffe aber, dass ich es hinbekomme, so habe ich alles an einem Ort.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk~~~~~~
-
Ich kann leider nicht deuten, was da bedeutet. Muss ich irgendwo noch meinen Standort hinterlegen? Sollte er doch aus der Astro Variable ziehen können. `
Hi Stefan1984Längen und Breitengrade hinterlegen.
Instanzen/Javascript.0 -> Konfigurations Icon klicken
Dort kannst Du auch auswählen "use system settings"
Diese sind dann in den Einstellungen iobroker.Admin (das kleine Zahnrad rechts oben) zu finden.
Grüße
-
Zusätzlich hast Du geschrieben, dass ich nicht .state nehmen soll. Ist das richtig? `
War wohl ein kleiner Schreibfehler von Dutchman.Sollte wohl so lauten:
"…du musst bei ObjectID nur <u>noch</u> den "state" deiner lampe waehlen:…."
Grüße
-
Zusätzlich hast Du geschrieben, dass ich nicht .state nehmen soll. Ist das richtig? `
War wohl ein kleiner Schreibfehler von Dutchman.Sollte wohl so lauten:
"…du musst bei ObjectID nur <u>noch</u> den "state" deiner lampe waehlen:…."
Grüße `
stimmt, sorry !
-
stimmt, sorry ! `
Du solltest mal mein holländisch lesen :lol: :lol: :lol: -
Hat geholfen. Danke. Habe dank euch meine erste kleine Zeitsteuerung über ioBroker realisiert. [emoji847]
Jetzt probiere ich nach und nach die Programme der CCU nachzubauen.
Bin mal gespannt, wie es sich verhält, wenn ich ein Programm der CCU mit Skript nachbaue. Gibt es hier auch ein Baustein, der ein Teilskript fassen kann? Oder muss ich es danach händisch irgendwo einfügen?
Eine Frage habe ich noch. Mein Skript ins aktiviert. Reicht das schon aus, damit es automatisch genutzt wird, oder muss ich damit noch irgendetwas machen?
Gesendet von iPhone mit Tapatalk
-
Gibt es hier auch ein Baustein, der ein Teilskript fassen kann? `
Nennt sich "Funktion". -
Bin mal gespannt, wie es sich verhält, wenn ich ein Programm der CCU mit Skript nachbaue. `
Ich habe keine Programme mehr auf der CCU. Alles mit Blockly nachgebaut.Läuft alles wesentlich stabiler.
Gibt es hier auch ein Baustein, der ein Teilskript fassen kann? `
Was verstehst Du unter Teilscript?Eine Frage habe ich noch. Mein Skript ins aktiviert. Reicht das schon aus, damit es automatisch genutzt wird, oder muss ich damit noch irgendetwas machen? `
Ja, dass reicht.KEINE Scripte in den Ordner "GLOBAL" packen. Die laufen dort nicht!!!!!
Such mal hier im Forum nach Blockly da gibt es schon jede Menge Beispiele und Erklärungen.
Hier gibt es auch etwas zu lesen. http://www.iobroker.net/docu/?page_id=5319&lang=de
Ansonsten: Bei Fragen fragen.
Am besten in einem neuen Thread mit Hinweis auf Blockly im Betreff.
"[Frage] Blockly….wie geht das"
Hier kannst Du Dich über die Forumsregeln informieren.http://forum.iobroker.net/viewtopic.php?f=8&t=2451
Grüße
-
Das habe ich verstanden. Werde zukünftig einen eigenen Thread dafür machen. Eine kleine Frage habe ich noch:
Kann man das so machen?
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... fb0482.jpg">https://uploads.tapatalk-cdn.com/20171107/b581860d8885ae5459b45eb527fb0482.jpg</link_text>" />
Es soll bei Situation Sonnenuntergang die Anwesenheit auf true geprüft werden. Erst dann sollen die Bewegungsmeldern geschaltet werden.
Kann ich jetzt in dem gleichen Skript Astro Sonnenaufgang definieren, damit hierzu nicht ein extra Skript machen muss?
Also einfach die gleichen Bausteine mit Sonnenaufgang unten dran setzen?
Möchte jetzt nicht für jede Blocky Frage einen eigenen Thread aufmachen. Werde bei der nächsten Frage einen Blocky Thread eröffnen und dort meine Fragen stellen. [emoji854]
Aber vielleicht könnt ihr noch kurz einen Blick auf meinen Screen werfen?
Danke.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk~~
-
du benutzt einen falschen block, bitte keine trigger in einem trigger.
benutze zu diesem zweck den logik baustein wenn/dann, bei der abfragen dan "wenn wert von object anwesenheid = wahr" dan deine steuer bloecke
wen du auf aenderung der anwesenheit die astro zeit benutzen moechtest ist das ein anderer trigger (dein zweiter baustein) mit darin einer wenn abfrage op es abend ist
PS: es hilft im algemeinen wen du einen block auch exportierst und in deinem thread zwischen spoiler und code postest.
Dan koennen wir sehr leicht eine korrektur/idee zeigen was meist einfacher ist als die woertliche erlaehrung.
~Dutch
-
Dutchman war wieder schneller
ModEdit by Dutch : :mrgreen: :mrgreen: :mrgreen: :lol: :lol: :lol: :mrgreen: :mrgreen: :mrgreen:
-
Das PS von Dutchman habe ich leider nicht verstanden.
Gesendet von iPhone mit Tapatalk
-
Das PS von Dutchman habe ich leider nicht verstanden.
Gesendet von iPhone mit Tapatalk `
wenn du ein script gemacht hast mit blockly kannst du das exportieren, den code stellst du dan ins forum rein.
Dan koennen wir deinen code importieren und leichter helfen/troubleshooten:
(ich habe gerade gemerkt das export/import garnicht in de docu erwaehnt ist, werde das bei gelegenheit mal in git updated (oder Rantanplan ist schneller :lol: )
-
Hallo zusammen,
ich hänge gerade. :?
Meintet ihr so wie auf dem Screenshot zu sehen?
Anbei der Code:
! <block 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml" type="controls_if" id="oHt|H.hXR2(_Vt%ey0=d" x="-862.7013184194341" y="38">
! <value name="IF0"><block type="time_astro" id="Ui^Gp)FHeCGAP(C7sByr"><field name="TYPE">sunset</field>
! <field name="OFFSET">0</field></block></value>
! <statement name="DO0"><block type="on" id=":HhRVu~KdR[5h|E4E(xb"><field name="OID">hm-rega.0.11733</field>
! <field name="CONDITION">true</field>
! <statement name="STATEMENT"><block type="control" id="%CC~~ix/sSMQ,jUz,35T"><mutation delay_input="false"></mutation>
! <field name="OID">hm-rpc.0.LEQ1291xxx.4.STATE</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="45)!_go/x]0#vRz@Pb=#"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control" id="U]:)1Z9g?Es9(.97U1W|"><mutation delay_input="false"></mutation>
! <field name="OID">hm-rpc.0.LEQ1291xxx.3.STATE</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="@^11LPAsA0SmTY8X*FAe"><field name="BOOL">TRUE</field></block></value></block></next></block></statement></block></statement></block>Grüße,
Stefan
-
Ehr so.
Sonnenuntergang ist pro Tag ein einmaliges Ereignis.
NUR wenn zum Zeitpunkt "Sonnenuntergang" Anwesenheit=wahr ist werden die Lampen eingeschaltet.
Sonst nie.
Export mit spoiler und code tag
!
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="ti%uq4%}0@d6|!#SXG[F" x="-762" y="-62"><field name="COMMENT">Auf Sonnenuntergang triggern</field> <next><block type="astro" id="e88[NtF.mvB*q6+UB`{v"><field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block type="comment" id="}O%ss,Nwb9waOWZo@g.p"><field name="COMMENT">Anwesenheit prüfen</field> <next><block type="controls_if" id="oHt|H.hXR2(_Vt%ey0=d"><value name="IF0"><block type="logic_compare" id="cBLh1nO8Z3D75;0V|=/V"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="KeVuCGsk}UAC?*h5NgW4"><field name="ATTR">val</field> <field name="OID">HomeStatus.0.Sonstiges.Anwesend</field></block></value> <value name="B"><block type="logic_boolean" id="+^l^*XF.KzjsBeKt,/a:"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="%CC~~ix/sSMQ,jUz,35T"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1291xxx.4.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="45)!_go/x]0#vRz@Pb=#"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="U]:)1Z9g?Es9(.97U1W|"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1291xxx.3.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="@^11LPAsA0SmTY8X*FAe"><field name="BOOL">TRUE</field></block></value></block></next></block></statement></block></next></block></statement></block></next></block></xml> !
Mein Datenpunkt "Anwesend" musst Du durch Deinen ersetzen.
Grüße
-
Danke rantanplan.
Wenn man das so sieht, ist es einleuchtend.
Kann ich mir generell merken - wenn ein Trigger benutzt wird, dass dieser immer als erster Baustein gesetzt wird?
Vielen Dank für eurer Beiden Hilfe.
Ab der nächsten Frage, werde Ich einen eigenen Thread für Blockly erstellen.
Danke nochmal.
Grüße,
Stefan
-
Kann ich mir generell merken - wenn ein Trigger benutzt wird, dass dieser immer als erster Baustein gesetzt wird? `
Ja genau.
Alles ist Ereignisorientiert. Und Ereignisse/Änderungen werden getriggert.
Die Bausteine INNERHALB des Triggers werden dann JEDESMAL ausgeführt wenn das getriggerte Ereignis stattfindet.
Innerhalb kann man dann weitere Bedingungen abfragen und reagieren.
(In der CCU ist das nicht anders. Aber nicht so komfortabel und umfangreich)
Es können auch Blöcke außerhalb eines Triggers sein.
Diese werden kann nur 1x bei Programmstart ausgeführt.
Man kann damit z.B. Variablen initialisieren.
Dies gilt nicht für Funktionen. Aber dazu kommen wir später.
Grüße