NEWS
Alle Shelly aus
-
ich habe mit Blockly folgendes Script erstellt:
on({id: "shelly.0.SHCB-1#483FDA927EEC#1.id"/*id*/, val: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; }); getState("shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch", function (err, state) { setState("shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch"/*Switch*/, state ? !state.val : true); });Wenn Shelly ID shelly.0.SHCB-1#483FDA927EEC#1.id true ist dann schalte shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch
So soll das ?
@dr-pie Ich verstehe Deinen Code irgend wie nicht.
Bei dem Trigger speicherst Du nur den aktuellen und den vorangeganenen Wert in einer Variablen und dann liest Du den Zustand des Shellies aus und schaltest dann???
Der Zustand interessiert Dich doch gar nicht, also stellst Du doch mmer auf false!Triggern darf nur Dein Gute Nacht Button - und dann schaltest Du doch immer aus. Sprich ist egal wie der jetzige Zustand ist.
Du musst es meines Erachtens wie in dem Skript vom Paul machen.
In dem Skript unten ist doch schon alles drin. Nur in Deinem
const idButton = 'Gute Nacht';darf nicht Gute Nacht stehen, sondern natürlich der Datenpunkt mit dem Du dann im VIS oder wo auch immer den Gute Nacht Button steuern willst.
Also nehmen wir mal an Du hast einen GuteNacht Datenpunkt unter 0_userdata.0 erstellt, dann ist der Pfad zu diesem Datenpunkt 0_userdata.0.GuteNacht
Wenn Du mit shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch = false das Licht/Shelly ausschaltest, dann brauchst das Skript von paul doch nur so anzupassen:
const idButton = '0_userdata.0.GuteNacht'; const idsShelly = [ 'shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch' ]; on({id: idButton, val: true}, function() { for(let i = 0; i < idsShelly.length; i++) { let id = idsShelly[i]; if(getState(id).val) setState(id, false); } });Für mehrere Shellies, musst Du nur noch die ganzen IDs für den Switch in das Array idsShelly anpassen.
Mit Blockly könnte das dann auch so aussehen:

und mit Objekt ID müsstest Du dann Deine Schalter angeben also: shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch
-
So sieht es bei mir aus.

<block xmlns="https://developers.google.com/blockly/xml" type="on" id="MH2!xLg#VfJ!|X.)#i9W" x="37" y="-12"> <field name="OID">zigbee.0.b4e3f9fffe6811c2.on</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="aiwu?j=PTT1-aEg]g%XG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#111A32#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~d;NSOaBCzk|ty^X[83~"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="In?69YUu^,oL6uNbqV0b"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117741#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="5]@QkDORSD?g0vZN(O7I"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="`fI@MCtQ#a#rNPTY}oFP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117414#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="l[SSXO[bV337,acgaV@L"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="O_5+A^lIa4G9M).9|2#U"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#10B819#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="x7pI{X-*}edB[F[6aJ/+"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="4ZQ[FoaK#k}jf$O$jxJc"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#10B819#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Nm2Q2])kgT#l[bnxq03g"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="RcuL%SyZ)@8}7hu(YQa-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117A0A#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":YXiTgtN[$CcZoRl+$TL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="+9FCExW$Gy.EGLQn]HPX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#115FC1#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ga-xtVePiY;^Dj;EskzK"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="%DteQ]A_,|rQ{~)q!V6W"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="T`W9Lx0Fm@]-1dNTf,G2"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="l]0G85O|b:e$66I3K|y="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`+Ty$CMm]@J$$iM$|]j/"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> -
So sieht es bei mir aus.

<block xmlns="https://developers.google.com/blockly/xml" type="on" id="MH2!xLg#VfJ!|X.)#i9W" x="37" y="-12"> <field name="OID">zigbee.0.b4e3f9fffe6811c2.on</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="aiwu?j=PTT1-aEg]g%XG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#111A32#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~d;NSOaBCzk|ty^X[83~"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="In?69YUu^,oL6uNbqV0b"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117741#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="5]@QkDORSD?g0vZN(O7I"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="`fI@MCtQ#a#rNPTY}oFP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117414#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="l[SSXO[bV337,acgaV@L"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="O_5+A^lIa4G9M).9|2#U"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#10B819#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="x7pI{X-*}edB[F[6aJ/+"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="4ZQ[FoaK#k}jf$O$jxJc"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#10B819#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Nm2Q2])kgT#l[bnxq03g"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="RcuL%SyZ)@8}7hu(YQa-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#117A0A#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":YXiTgtN[$CcZoRl+$TL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="+9FCExW$Gy.EGLQn]HPX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#115FC1#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ga-xtVePiY;^Dj;EskzK"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="%DteQ]A_,|rQ{~)q!V6W"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="T`W9Lx0Fm@]-1dNTf,G2"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="l]0G85O|b:e$66I3K|y="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`+Ty$CMm]@J$$iM$|]j/"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> -
@dr-pie Du legst nur einen Datenpunkt an - GuteNacht - hab Dir unten das Blockly gepostet:

und schaltest mit diesem alle Deine Switch Datenpunkte - siehe Blockly unten - oder auch das JS Code
-
@dr-pie Du legst nur einen Datenpunkt an - GuteNacht - hab Dir unten das Blockly gepostet:

und schaltest mit diesem alle Deine Switch Datenpunkte - siehe Blockly unten - oder auch das JS Code
-
@mickym ok ...
Lege ich den an werde ich nach dem Zustandstyp gefragt.
Automatisch steht da string drin ... das scheint wohl falsch zu sein ...@dr-pie

Du nimmst ein Boolean als Datentyp
-
@mickym Ihr seid hier echt der Hammer.
Es funktioniert so wie es soll 👍👍👍👍👍
1000 Dank dafür 😀😀😀Nun muss ich nur noch den richtigen Button finden ... quasi einen Taster.
Grüße
@dr-pie In dem Fall brauchst nicht wirklich einen Taster sondern ein Button reicht:


Ein Drücken aktualisiert den Datenpunkt mit true und triggert damit Dein Skript
-
@dr-pie In dem Fall brauchst nicht wirklich einen Taster sondern ein Button reicht:


Ein Drücken aktualisiert den Datenpunkt mit true und triggert damit Dein Skript
-
Moin...
da isser wieder :+1:
Dieser "Gute Nacht" Button klappt sehr sehr gut.
Aaaaber ....
Ich habe in meiner VIS einen Button:
harmony.0.HarmonyHub.activities.Fernsehen
Mit diesem Button schalte ich TV, AV-Receiver und Sky-Box aus.
Will ich nun das auch in den "Gute Nacht" Button integrieren funktioniert das nicht.Java sieht so aus:
setState("harmony.0.HarmonyHub.activities.Fernsehen"/activity:Fernsehen/, false);Aber der die Geräte schalten nicht ab.
Über den Button in der VIS gehts dann problemlos.Wo hängt es denn nun wieder ... kopfkratz ...
Danke
-
Moin...
da isser wieder :+1:
Dieser "Gute Nacht" Button klappt sehr sehr gut.
Aaaaber ....
Ich habe in meiner VIS einen Button:
harmony.0.HarmonyHub.activities.Fernsehen
Mit diesem Button schalte ich TV, AV-Receiver und Sky-Box aus.
Will ich nun das auch in den "Gute Nacht" Button integrieren funktioniert das nicht.Java sieht so aus:
setState("harmony.0.HarmonyHub.activities.Fernsehen"/activity:Fernsehen/, false);Aber der die Geräte schalten nicht ab.
Über den Button in der VIS gehts dann problemlos.Wo hängt es denn nun wieder ... kopfkratz ...
Danke
@dr-pie Activities ausschalten mit 0 und nicht false. Einschalten einer Activity ist größer 0.
Liest man unter Adaüterbeschreibung:

-
@dr-pie Activities ausschalten mit 0 und nicht false. Einschalten einer Activity ist größer 0.
Liest man unter Adaüterbeschreibung:

-
@dr-pie Ich bin zwar kein Blockly Spezialist, aber ich würde einfach die 0 aus dem Mathematik Block nehmen


-
Und warum bin ich jetzt nicht selber darauf gekommen ??
Ich wusste nicht das man den "Wahr-Falsch" block einfach so ersetzen kann :blush:1000 Dank Dir .:+1: :+1: :+1:
Dieser Beitrag wurde gelöscht! -
Wenn du den Scene Adapter hast, kannst du dort auch ganz einfach eine Szene anlegen und mit einem Buttonklick ausführen.
@timee Soooo ... da isser wieder :blush:
Neue Sache ist gewünscht :innocent:
Der Button funktioniert wie gewünscht.
Doch ein Problem ist das man nicht sieht ob man ihn gedrückt hat.Wie kann man sich denn eine andere Farbe anzeigen lassen wenn er gedrückt ist ?
Lässt man ihn dann los ist wieder die Standardfarbe....Ich hab keinen Plan und hoffe ihr habt den :innocent:
-
@timee Soooo ... da isser wieder :blush:
Neue Sache ist gewünscht :innocent:
Der Button funktioniert wie gewünscht.
Doch ein Problem ist das man nicht sieht ob man ihn gedrückt hat.Wie kann man sich denn eine andere Farbe anzeigen lassen wenn er gedrückt ist ?
Lässt man ihn dann los ist wieder die Standardfarbe....Ich hab keinen Plan und hoffe ihr habt den :innocent:
@dr-pie

Du nimmst einfach ein anderes Bild - während er gedrückt ist.
-
Wenn du den Scene Adapter hast, kannst du dort auch ganz einfach eine Szene anlegen und mit einem Buttonklick ausführen.
@timee sagte in Alle Shelly aus:
Wenn du den Scene Adapter hast, kannst du dort auch ganz einfach eine Szene anlegen und mit einem Buttonklick ausführen.
Das habe ich gerade probiert ... klappt im Grunde sogar sehr gut ... aaaaber der Button, einmal gedrückt, ändert seine Farbe nicht wieder zurück
-
@timee sagte in Alle Shelly aus:
Wenn du den Scene Adapter hast, kannst du dort auch ganz einfach eine Szene anlegen und mit einem Buttonklick ausführen.
Das habe ich gerade probiert ... klappt im Grunde sogar sehr gut ... aaaaber der Button, einmal gedrückt, ändert seine Farbe nicht wieder zurück
@dr-pie Hmm bei Kleinbild muss halt auch was drinstehen - das wird angezeigt, sobald Du loslässt.
