Hey,
bin über die Reaktionszeit erstaunt! Danke für die schnelle Rückmeldung.
Bin noch Scripting-Einsteiger. der getState macht nicht nur Sinn, sondern funktioniert auch
Danke für die Lösung!
Hey,
bin über die Reaktionszeit erstaunt! Danke für die schnelle Rückmeldung.
Bin noch Scripting-Einsteiger. der getState macht nicht nur Sinn, sondern funktioniert auch
Danke für die Lösung!
Guten Morgen,
danke für den berechtigten Hinweis. Habe de Rechtschreibfehler abgeändert.
Leider nur bringt mich das nicht wirklich weiter
Grüße
Guten Morgen,
danke für den berechtigten Hinweis. Habe de Rechtschreibfehler abgeändert.
Leider nur bringt mich das nicht wirklich weiter
Grüße
@tomily
Hallo zusammen,
habe in meiner Verzweiflung etwas gebastelt. Folgendes Skript ist nicht schön, aber scheint zu funktionieren. Ich würde nun für jedes Gerät ein eigenes Skript anlegen. Gibt es da schönere Wege?
var loxone1 = "loxone.0.17e32c4c-0158-6939-ffff54219c77328a.activeMoods";
var iobroker1 = "shelly.0.SHDM-2#84CCA8ADFC4C#1.lights.Switch";
// Loxone-Schaltvorgang in ioBroker übertragen
on(loxone1, function(dp) {
if (dp.newState.val == "Hell") {
setState(iobroker1,true);
}
else if (dp.newState.val == "Aus") {
setState(iobroker1,false);
}
});
// ioBroker-Schaltvorgang in Loxone übertragen
on(iobroker1, function(dp) {
if (dp.newState.val == true) {
setState(loxone1,"Hell");
}
else if (dp.newState.val == false) {
setState(loxone1,"Aus");
}
});
Hallo zusammen,
ich bin ein schlechter Scripter, weshalb ich mich vertrauensvoll an euch wende
Parallel zum ioBroker verwende ich neuerdings einen LoxoneMiniserver. Die Loxone ist per Loxone-Adapter verbunden und liefert auch Ihre Geräte und Status. Leider auch nicht mehr
Ich möchte nun andere Geräte (Homematic Rollläden, Bewegungsmelder oder ShellyDimmer) über die Loxone steuern können und auch deren Zustände zurückmelden, falls über andere Wege (z.B. am Taster) geschaltet wurde.
Die Loxone bringt im Beispiel Licht Datenpunkte wie Szenen (active Moods) oder Szenen-IDs (activeMoodsNum)
Frage:
Wie kann ein einfaches Script aussehen, das diese Zustände ausliest und einen entsprechend anderen Datenpunkt schaltet.
Quasi so:
WENN loxone.0.............activeMoods ) "Hell", DANN shelly.0...........lights.switch = "true"
WENN loxone.0.............activeMoods ) "Dunkel", DANN shelly.0...........lights.switch = "false"
Damit die Loxone den Status auch mitbekommt retour:
WENN shelly.0...........lights.switch = "true" DANN loxone.0.............activeMoods = "HELL"
Ist das verständlich?
Viele Grüße
@mickym
Moinsen,
habe beim debuggen herausgefunden, dass die Tag/Nacht sekündlich neu getriggert wurde, da ich in einem ganz anderen Node durch den Input/Output Passtrough einen Loop gebaut habe
Habe diesen entfernt und das Problem scheint gelöst. Da das Licht nach dem Ausschalten die letzte Bedingung erfüllt hat und der Tag/Nacht ständig neu getriggert hat, hat es für mich so ausgesehen, als ob es ständig nach dem ausschalten passiert.
Also wieder was gelernt und das Problem beisitigt
Danke für den Tipp mit der NOde. Sieht gut aus und ich finde definitiv auch verwendung dafür. Da die Homematic in diesem Fall das führende System ist, macht die Tag/Nacht Variable für mich hier am meisten Sinn.
Liebe Grüße und schönen Rest-Feiertag
@mickym
Es steht schon auf diesem Wert. Hier der Flow:
[
{
"id": "2e430224.ada696",
"type": "tab",
"label": "TEST",
"disabled": false,
"info": ""
},
{
"id": "49a28ceb.5873ec",
"type": "switch",
"z": "2e430224.ada696",
"name": "tag ?",
"property": "nacht",
"propertyType": "flow",
"rules": [
{
"t": "eq",
"v": "0",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 310,
"y": 140,
"wires": [
[
"b3ee6219.89e688"
]
]
},
{
"id": "34b29f5e.7ef208",
"type": "ioBroker out",
"z": "2e430224.ada696",
"name": "Shelly1.Brightness",
"topic": "shelly.0.SHDM-2#40F520010A41#1.lights.brightness",
"ack": "false",
"autoCreate": "false",
"stateName": "",
"role": "",
"payloadType": "",
"readonly": "",
"stateUnit": "",
"stateMin": "",
"stateMax": "",
"x": 948,
"y": 140,
"wires": []
},
{
"id": "ff465606.3027a",
"type": "change",
"z": "2e430224.ada696",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "100",
"tot": "num"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 710,
"y": 140,
"wires": [
[
"34b29f5e.7ef208"
]
]
},
{
"id": "1c3e979f.79d078",
"type": "ioBroker in",
"z": "2e430224.ada696",
"name": "Shelly1.Switch",
"topic": "shelly.0.SHDM-2#40F520010A41#1.lights.Switch",
"payloadType": "value",
"onlyack": "",
"func": "all",
"gap": "",
"fireOnStart": "false",
"x": 330,
"y": 83,
"wires": [
[
"2215cb91.1dd0bc"
]
]
},
{
"id": "2215cb91.1dd0bc",
"type": "change",
"z": "2e430224.ada696",
"name": "",
"rules": [
{
"t": "set",
"p": "shelly1",
"pt": "flow",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 510,
"y": 83,
"wires": [
[]
]
},
{
"id": "b3ee6219.89e688",
"type": "switch",
"z": "2e430224.ada696",
"name": "shelly1 false?",
"property": "shelly1",
"propertyType": "flow",
"rules": [
{
"t": "eq",
"v": "false",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 501,
"y": 140,
"wires": [
[
"ff465606.3027a"
]
]
},
{
"id": "5cb0c981.a7513",
"type": "ioBroker in",
"z": "2e430224.ada696",
"name": "Tag/Nacht-Modus",
"topic": "hm-rega.0.2161",
"payloadType": "value",
"onlyack": "",
"func": "rbe",
"gap": "",
"fireOnStart": "true",
"x": 119,
"y": 140,
"wires": [
[
"49a28ceb.5873ec",
"d5441f96.629298"
]
]
},
{
"id": "d5441f96.629298",
"type": "switch",
"z": "2e430224.ada696",
"name": "nacht ?",
"property": "nacht",
"propertyType": "flow",
"rules": [
{
"t": "eq",
"v": "1",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 320,
"y": 182,
"wires": [
[
"2b4e6103.d8fb6e"
]
]
},
{
"id": "39b72367.ee655c",
"type": "change",
"z": "2e430224.ada696",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "30",
"tot": "num"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 711,
"y": 182,
"wires": [
[
"34b29f5e.7ef208"
]
]
},
{
"id": "2b4e6103.d8fb6e",
"type": "switch",
"z": "2e430224.ada696",
"name": "shelly1 false?",
"property": "shelly1",
"propertyType": "flow",
"rules": [
{
"t": "eq",
"v": "false",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 502,
"y": 182,
"wires": [
[
"39b72367.ee655c"
]
]
}
]
@mickym
Hey, ich dachte ich hatte es verstanden und habe mir die Logik einfach kopiert und leicht angepasst. Ich wollte, dass beim Umschalten auf Nacht, EINMALIG alle Helligkeiten gesetzt werden.
Das klappt auch, allerdings ist jedes Mal bei NACHT + Ausgeschaltetem Licht die Bedingung erfüllt, sodass sich der Wert nach jedem ausschalten des Lichtes zurück setzt
Vermutlich wird die Variable Tag/Nacht ständig aktualisiert? Kann ich das auch noch abfangen?
@mickym Ach sehr geil!!!!
Ich hatte mir das Beispiel angeschaut aber nicht ganz verstanden. Durch deine Anpassung an meine Datenpunkte ist es mir aber klar geworden. Und siehe da....es hat sofort funktioniert.
Werde das gleich kopieren und auf mehrere Szenarien anwenden.
DANKE!!!!!!
Hallo zusammen,
ich hatte mit mickym schon Kontakt (DANKE hierfür=). Nun wurde es aber doch zu "viel", sodass ich nun einen Thread eröffne.
Mein Ziel ist es, mit einem NodeRed-Flow einen Shelly auf eine bestimmte Helligkeit einzuschalten Das ganze aber in Abhängigkeit mit ein paar Abhängigkeiten. Involviert sind:
Türkontakt der Wohnungstüre bei geöffnet = true
Bewegungsmelder innen bei "keine Bewegung" = false
Tag/Nacht-Variable (kommt von Homematic) bei Nacht = 1
Licht shelly = 0
Man mag sich über den Bewegungsmelder wundern. Ist aber Absicht. Er befindet sich innen und durch die "KEINE Bewegung" erkenne ich, dass die Türe von außen geöffnet wurde. Das Licht soll also nur beim heimkommen angeschaltet werden.
Den Zustand des Shellys würde ich mit Abfragen, damit die Helligkeit nicht nochmal gesetzt wird, falls dieser schon an ist.
Das Licht soll also nur Nachts beim heimkommen angehen und nicht überschrieben werden, falls es schon an ist.
Also WENN Türkontakt=true, UND Tag/Nacht = 1, UND Bewegungsmelder = false, UND shelly = false
DANN shelly = true + helligkeit = 50%
Hier mein Test-Flow, der offensichtlich falsch ist. Müsste die Bedingungen irgendwie mit einem UND verknüpfen statt diese in einer Reihe zu haben.
[
{
"id": "755fb288.0a7324",
"type": "tab",
"label": "TEST",
"disabled": false,
"info": ""
},
{
"id": "14218750.b755f1",
"type": "ioBroker in",
"z": "755fb288.0a7324",
"name": "Kontakt Wohnungstüre:1.STATE",
"topic": "hm-rpc.0.OEQ0702785.1.STATE",
"payloadType": "value",
"onlyack": false,
"func": "rbe",
"gap": "",
"x": 150,
"y": 180,
"wires": [
[
"f338dfa9.155c18"
]
]
},
{
"id": "dc2b55f6.8ce4",
"type": "comment",
"z": "755fb288.0a7324",
"name": "Flurlicht bei Türkontakt",
"info": "",
"x": 121,
"y": 131,
"wires": []
},
{
"id": "f338dfa9.155c18",
"type": "switch",
"z": "755fb288.0a7324",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "true",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 390,
"y": 180,
"wires": [
[
"4ed48962.63c838"
]
]
},
{
"id": "1adaf79c.334de8",
"type": "change",
"z": "755fb288.0a7324",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "eiiiin",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 991,
"y": 180,
"wires": [
[
"60f4c46c.4cd724"
]
]
},
{
"id": "60f4c46c.4cd724",
"type": "ui_text",
"z": "755fb288.0a7324",
"group": "61162a7c.03086c",
"order": 10,
"width": 0,
"height": 0,
"name": "",
"label": "text",
"format": "{{msg.payload}}",
"layout": "row-spread",
"x": 1190,
"y": 184,
"wires": []
},
{
"id": "f6c595f7.a9c188",
"type": "ioBroker in",
"z": "755fb288.0a7324",
"name": "Tag/Nacht-Modus",
"topic": "hm-rega.0.2161",
"payloadType": "value",
"onlyack": "",
"func": "rbe",
"gap": "",
"x": 548,
"y": 130,
"wires": [
[
"4ed48962.63c838",
"5c9cb3fc.9a4a54"
]
]
},
{
"id": "4ed48962.63c838",
"type": "switch",
"z": "755fb288.0a7324",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "1",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 548,
"y": 180,
"wires": [
[
"1ba1c30f.0d997d"
]
]
},
{
"id": "5c9cb3fc.9a4a54",
"type": "debug",
"z": "755fb288.0a7324",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 730,
"y": 56,
"wires": []
},
{
"id": "1ba1c30f.0d997d",
"type": "switch",
"z": "755fb288.0a7324",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "false",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 769,
"y": 180,
"wires": [
[
"1adaf79c.334de8"
]
]
},
{
"id": "be640c5d.caa7d8",
"type": "ioBroker in",
"z": "755fb288.0a7324",
"name": "Bewegungsmelder",
"topic": "hm-rpc.0.OEQ0488147.1.MOTION",
"payloadType": "value",
"onlyack": "",
"func": "rbe",
"gap": "",
"x": 768,
"y": 133,
"wires": [
[
"5c9cb3fc.9a4a54",
"1ba1c30f.0d997d"
]
]
},
{
"id": "61162a7c.03086c",
"type": "ui_group",
"name": "Schalter",
"tab": "d083d97.c27afa8",
"order": 1,
"disp": true,
"width": "7",
"collapse": false
},
{
"id": "d083d97.c27afa8",
"type": "ui_tab",
"name": "Licht",
"icon": "dashboard",
"order": 3,
"disabled": false,
"hidden": false
}
]
Ich danke euch schonmal für eure Ideen bzw. Gedankenanstöße. Vll lässt sich das auch schicker regeln? Wie macht Ihr sowas?
@ente34
GEIL!
GEIL!
Es ist manchmal so einfach. Habe den falschen Bereich auskommentiert, weil ich den Code nicht 100%ig verstanden hab.
Durch deine erneute und geduldige Hilfe bin ich erneut am Ziel
Mega cool....auch das funktioniert nun genau wie gewünscht
Grüße
Tomily
@ente34 Dieser Anwendungsfall wäre:
Benachrichtigung, wenn Ordner NICHT Leer ist.
Es handelt sich also beispielsweise um ein Verzeichnis, das immer leer sein sollte. Sobald es nicht mehr leer ist (Inhalt y >= 1 Datei), dann wird die Benachrichtigung ausgelöst.
Keine Sorge, die anderen Skripte waren nicht um sonst und sind beide fleißig im Einsatz.
Beim Einsetzen und anpassen ist mir diese Anwendungsart noch eingefallen und wäre sehr hilfreich.
Grüße