NEWS
[Gelöst] Szenen Adapter - Programme der CCU auslagern
-
Hallo zusammen,
ich möchte meine CCU2 entlasten und Programme zu ioBroker auslagern. Ich habe bereits den Szenen Adapter installiert und erste Versuche gestartet. Leider erschließt sich der Adapter für mich nicht komplett.
Ich habe testweise eine Szene erstellt und kann diese über das Play-Zeichen aktivieren. Die zum Test verwendeten Lampen schalten ordnungsgemäß.
Ü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?
Über Tipps bin ich sehr dankbar. [emoji847]
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.
-
Sorry, … das hab ich nicht verstanden. Blockly wurde bereits in Beiträgen zu anderen Themen erwähnt. Da ich mich leider nicht mit Scripten auskenne, würde ich gern den Vorschlag mit dem Object probieren. Kannst Du mir die Vorgehensweise kurz mit ein paar mehr Details erläutern?
Vielen Dank im voraus.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk
-
Sorry, … das hab ich nicht verstanden. Blockly wurde bereits in Beiträgen zu anderen Themen erwähnt. Da ich mich leider nicht mit Scripten auskenne, würde ich gern den Vorschlag mit dem Object probieren. Kannst Du mir die Vorgehensweise kurz mit ein paar mehr Details erläutern?
Vielen Dank im voraus.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk `
nenne mal bitte den use-case was du genau schalten moechtest und mit welche astro functionen dan wird es einfacher
-
Ich hab mal 2 Programme der CCU kopiert. Das erste stellt eine normale Nachtbeleuchtung dar. Wenn Sonnenuntergang, dann schalte x Lampen an. Für Sonnenaufgang gibt es ebenfalls ein Programm, welches die Lampen wieder ausschaltet.
Beim zweiten Programm, wird die Gartenbewässerung in 30 Minuten ausgeschaltet. Aktuell gucke ich manuell, ob Wasser notwendig ist und schalte diese an. Danach brauch ich mich aber nicht mehr kümmern. Zusätzlich würde ich gern die vorhandenen Infos meines Landroids abgleichen und nur bewässern, wenn dieser gerade nicht fährt. Ist aktuell aber noch Zukunftsmusik.
Es sind circa 20 Programme in ähnlicher Konstellation.
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... d14314.jpg">https://uploads.tapatalk-cdn.com/20171107/a1f5431f7e092b54d667ffbeafd14314.jpg</link_text>" />
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201711 ... c49175.jpg">https://uploads.tapatalk-cdn.com/20171107/18a4c7cd02bc7702a8ad5b0358c49175.jpg</link_text>" />
Ich hoffe die Screens helfen weiter.
Ich muss nur das Grundprinzip verstehen, den Rest kann ich dann selbst ableiten.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk~~~~
-
Hi,
Ich bin nicht der "super scene" experte aber ich glaube was du da erreichen moechtest wird zu compliciert fuer scenen.
Soweit ich weis gibt es in scenen nicht die moeglichkeit mehrere bedienungen zu ueberpruefen und daraus schaltvorgaenge zu realisieren.
Eine scene sagt eigentlich: wen status x auf ein object zutrifft dan mache (inhalt der scene).
Ich denke mal das blockly fuer dich hier die bessere loesung ist, hier mal ein beispiel fuer deine lampen steuerung:
Und hier der code zum importieren, due musst bei ObjectID nur nich den "state" deiner lampe waehlen:
!
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="astro" id="/o09^~~o^;BZM5UnAHE8" x="-612" y="88"><field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block type="control" id="JN@D]RFOs]SYYCT^545Q"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="utX^4wRu5,d.*PTpQ%]s"><field name="BOOL">TRUE</field></block></value></block></statement> <next><block type="astro" id="oB6`vg,Wi#(x1CZ_tWn~"><field name="TYPE">sunrise</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block type="control" id="5IQRTh~WaF.^KI87FD*9"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="HCCwdea%!rMYAba.S-GA"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></xml> !
Und hier fuer deine garten bewaesserung. Dabei solltest du eine variable schalten womit du deine bewaesserung ansetezt.
Der erstse block trigger auf diese variable, die IF abfrage schaut ob diese wahr ist UND der landroid nicht faehrt:
Und hier der export:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="MqU[?+(A_zqw:qUrb70" x="-613" y="13"><field name="COMMENT">In dieser object ID den schalter womit du die bewaesserung einschalten moechtest (ich wuerde es mit einer variable machen</field>
<next><block type="on" id="BB+:ayhc{tB%nX`vN2Z"><field name="OID">Object ID</field>
<field name="CONDITION">ne</field><statement name="STATEMENT"><block type="comment" id="McAfl8W::PSewpr3Y9*o"><field name="COMMENT">Werte vergleichen</field> <next><block type="controls_if" id=";yP.rp`[2@~-4Z{ycTz{"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="_(|}0CR0;C%bj3VLgfnc" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="b:rdc+[k@^pcgSstZ{PS"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="e0=*iBdD{y8LmFfXXTma"><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="B"><block type="logic_boolean" id="Hp?eSnzuoQ_HH.3%+3Nh"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="OEN.`MjtaBW-VG4Vc5}r"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ZAOwXwtfiU0b|5Ov{O+."><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="B"><block type="logic_boolean" id="?y[N;vphsa-vz_ASBH~n"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO0"><block type="comment" id="3gN|[?V62QjZ{z+-BAk/"><field name="COMMENT">Regenbewaerrung an</field> <next><block type="control" id="8DA8#==zt83)!YHuxg5w"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="7_?rX_tu=!HQ=rT6cxIB"><field name="BOOL">TRUE</field></block></value> <next><block type="comment" id="|4S)oe;7tHN~%!jhJ0Bi"><field name="COMMENT">und nach 30 min bewaesserung aus</field> <next><block type="control" id="fg?tF7nr#1oy?2WIa}c}"><mutation delay_input="true"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">30</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="qN}_IjsE_Cji`Z6(U{]x"><field name="BOOL">FALSE</field></block></value> <next><block type="comment" id="oIthc9;f.XI)Nm5snHNw"><field name="COMMENT">und die variable wieder aus schalten</field> <next><block type="control" id="}==,%m+~Lzgja,`kij}0"><mutation delay_input="true"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">30</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="b6=!xZp@m;XZ|gHUhKn*"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="gWPZ3ppl;dlFrRb2F;tH" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="OpVh~iX6Rcyfy*b,-)M_"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="VULzievX;E}8XEDNXE+u"><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="B"><block type="logic_boolean" id="=yU_^*IE.BWv(HPk;].t"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="uBsd%DifDTHwoBl]#Ev)"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="QgnudKhoJpFuC,^2u+U."><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="B"><block type="logic_boolean" id="GY(/xgRyGPimP~:[{*;}"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO1"><block type="comment" id="M4q8fngSl@_sO?M-Otlz"><field name="COMMENT">Wen der landroid faehrt springt die variable wieder auf aus im kommt eine meldung im log (geht auch pushover usw</field> <next><block type="control" id="x/_]-tiqUoz;7Qvib):%"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="r4zxXhn%hElL4uRJc#di"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id="UA|N*|JBmjV24jXfC?bI"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="ku1hi*PY.026?TSHtMi*"><field name="TEXT">Landroid war an !</field></shadow></value></block></next></block></next></block></statement></block></next></block></statement></block></next></block></xml>
! ````
-
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