NEWS
Change Node soll true und False ausgeben
-
@hpgo sagte in Change Node soll true und False ausgeben:
[ { "id": "a8b6c88fca90c292", "type": "tab", "label": "Test", "disabled": false, "info": "", "env": [] }, { "id": "67f97c1215246680", "type": "sun-position", "z": "a8b6c88fca90c292", "name": "", "positionConfig": "d836509a.67bc4", "rules": [], "onlyOnChange": "true", "topic": "", "outputs": 1, "start": "sunriseStart", "startType": "pdsTime", "startOffset": 0, "startOffsetType": "none", "startOffsetMultiplier": 60000, "end": "sunsetStart", "endType": "pdsTime", "endOffset": 0, "endOffsetType": "none", "endOffsetMultiplier": 60000, "x": 370, "y": 320, "wires": [ [ "20ca13f9391daa46", "3bd8cb8ac344628d", "81c1a85a1906d342", "e32f46a14f2052b3" ] ] }, { "id": "20ca13f9391daa46", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 650, "y": 220, "wires": [] }, { "id": "c666ae62170a7366", "type": "inject", "z": "a8b6c88fca90c292", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 190, "y": 320, "wires": [ [ "67f97c1215246680" ] ] }, { "id": "3bd8cb8ac344628d", "type": "switch", "z": "a8b6c88fca90c292", "name": "", "property": "payload.azimuth", "propertyType": "msg", "rules": [ { "t": "btwn", "v": "0", "vt": "num", "v2": "100", "v2t": "num" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 630, "y": 280, "wires": [ [ "58cd8f952a6ba653" ], [ "bca2938f35107d33" ] ] }, { "id": "81c1a85a1906d342", "type": "switch", "z": "a8b6c88fca90c292", "name": "", "property": "payload.azimuth", "propertyType": "msg", "rules": [ { "t": "btwn", "v": "101", "vt": "num", "v2": "200", "v2t": "num" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 630, "y": 320, "wires": [ [ "6e64bef52b4f2933" ], [ "08ced6ef1c5b4690" ] ] }, { "id": "e32f46a14f2052b3", "type": "switch", "z": "a8b6c88fca90c292", "name": "", "property": "payload.azimuth", "propertyType": "msg", "rules": [ { "t": "btwn", "v": "201", "vt": "num", "v2": "360", "v2t": "num" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 630, "y": 360, "wires": [ [ "37069c02fb6658ee" ], [ "20d9b7a5f3621164" ] ] }, { "id": "5ece323b7afba4bb", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 260, "wires": [] }, { "id": "691ff859857dc1d3", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 300, "wires": [] }, { "id": "93c782497d3c53be", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 340, "wires": [] }, { "id": "0542556f17897f41", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 380, "wires": [] }, { "id": "6e80a6f304cbd91e", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 420, "wires": [] }, { "id": "bf41082f6df6f69f", "type": "debug", "z": "a8b6c88fca90c292", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1050, "y": 220, "wires": [] }, { "id": "58cd8f952a6ba653", "type": "change", "z": "a8b6c88fca90c292", "name": "true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 220, "wires": [ [ "bf41082f6df6f69f" ] ] }, { "id": "bca2938f35107d33", "type": "change", "z": "a8b6c88fca90c292", "name": "false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 260, "wires": [ [ "5ece323b7afba4bb" ] ] }, { "id": "6e64bef52b4f2933", "type": "change", "z": "a8b6c88fca90c292", "name": "true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 300, "wires": [ [ "691ff859857dc1d3" ] ] }, { "id": "08ced6ef1c5b4690", "type": "change", "z": "a8b6c88fca90c292", "name": "false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 340, "wires": [ [ "93c782497d3c53be" ] ] }, { "id": "37069c02fb6658ee", "type": "change", "z": "a8b6c88fca90c292", "name": "true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 380, "wires": [ [ "0542556f17897f41" ] ] }, { "id": "20d9b7a5f3621164", "type": "change", "z": "a8b6c88fca90c292", "name": "false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 420, "wires": [ [ "6e80a6f304cbd91e" ] ] }, { "id": "d836509a.67bc4", "type": "position-config", "name": "Wien", "isValide": "true", "longitude": "0", "latitude": "0", "angleType": "deg", "timeZoneOffset": "99", "timeZoneDST": "0", "stateTimeFormat": "3", "stateDateFormat": "12" } ]
Mit Deinem Flow überprüfst Du nur den SOnnenstand und bekommst 2 mal false und 1 mal true - aber in meinen Augen tatsächlich viel zu komplex, weil Du ausser wenn die Sonne im Norden steht, Du immer als Gesamtergebnis ein true und 2 false bekommst - was machst Du damit?
-
@mickym Hi, ich glaube er möchte, wenn die Sonne im Osten steht die Beschattung im Osten schließen und die im Süden und Westen öffnen bzw. offen lassen. Wenn die Sonne im Süden steht, die Beschattung im Süden schließen und die im Osten und Westen öffnen bzw. offen lassen. Steht die Sonne im Westen, die Beschattung im Westen schließen und die im Osten und Süden öffnen bzw. offen lassen. Das ganze noch mit Bewölkungsabfrage und ob Temperatur über 25 Grad.
-
@frankyboy73 Ja wenn das so ist, würde ich mir kein true oder false ausgeben lassen - wie er das gemäß Titel beschrieben hat, wie er unbedingt wollte sondern würde einfach an den letzten Switch je Himmelsrichtung immer direkt die Beschattung ansteuern und nicht mit true oder false arbeiten.
Es ist halt immer schwer - wenn man den UseCase nur halb mitgeteilt bekommt.
@hpgo sagte in Change Node soll true und False ausgeben:
Die Ausgänge sollen mit einer und Logik verbunden werden. Wenn also die Sonne im Osten, Süden, Westen steht und der Himmel Wolkenlos und die Temp >25°C dann soll die Logik true werden.
Statt dann halt zu sagen die Ausgänge sollen mit einer Logik verbunden werden, würde ich halt die Ansteuerung direkt übernehmen mir von mir aus zusätzlichen Logiken. Das alles in Teilschritte zu unterteilen ist zwar OK, aber richtig helfen kann man halt nur wenn man alles kennt.
Wie gesagt, wenn es so ist wie Du beschreibst würde ich keine Logik mit true oder false verbinden sonder direkt die Ansteuerung übernhmen. Selbst wenn das auf einem anderen Flow ist - gibts ja die Link IN und OUT Nodes um auf einer anderen Seite weiter zu machen.
-
@mickym Jetzt nur mal so, wenns nur um den Sonnenstand geht und als theoretische Lösung. Je nach Sonnenstand soll die jeweilige Beschattung auf bzw. zu gehen. Ne zusätzliche Logik mal außen vor gelassen. Dann könnte man das so lösen, oder was meinst du?
Da ich keine Sonnenstand Node habe nehme ich hier mal im Beispiel einfach ne Iobroker in Node. Im Switch der zur Verständlichkeit einfach nur Osten,Süden, Westen benutzt. Als Output zum Beispiel einfach mal Iobroker Output Nodes.
So in der Art sieht ja auch die Lösung von @hpgo aus.
Fehlt jetzt nur noch die zusätzliche Logik, die wie du schon geschrieben hast, davor stattfinden sollte. Also erst die Temperatur und Wolkenstatus überprüfen und danach auf den Sonnenstand.
Edit:
Oder so mit Logik davor, nur als Beispiel. Muss natürlich darauf angepasst werden wo die Werte herkommen, bzw, wie die restliche Logik aussieht.
Eventuell noch mit Triggern hinter 25 Grad und Wolkenstatus arbeiten, für ne Zeitverzögerung, damit bei schnellen Änderungen, nicht zu oft auf und zu gefahren wird
Edit: Habe es noch mal angepasst, hatte auf und zu vertauscht, Ups. -
@frankyboy73Nun mit der Beschattung kann man es so machen, wie Du es in dem Flow beschrieben hast, kann dann aber auch den Flow von @hpgo nehmen - ist meines Erachtens beides möglich:
True und False ist halt Auf und Zu.
Der Rest ist halt hängt halt wieder von der Logik ab.
Wenn beides erfüllt sein muss (Temperatur und Wolklenlos ) kann man mE alles aufmachen oder falls eine andere Logik das blockieren soll muss man schauen.Sprich wenn wolkenlos und Temperatur nicht erfüllt sind, muss ich den Sonnenstand nicht abfragen.
@frankyboy73 sagte in Change Node soll true und False ausgeben:
Eventuell noch mit Triggern hinter 25 Grad und Wolkenstatus arbeiten, für ne Zeitverzögerung, damit bei schnellen Änderungen, nicht zu oft auf und zu gefahren wird
Den Wolkenstatus da fehlt ja auch noch die iobroker get - wenn Du das schon mitaufnehmen willst.
Mit Zeitverzögerung und ggf. mit Hysterese - sprich >25°C aber erst kleiner 23°C zu machen - dazwischen gar nichts.
Mal ohne die iobroker get Nodes - die muss man halt noch einbauen, sondern nur mal die Logik würde ich dann wohl so machen:
Die iobroker get Nodes müssen wie gesagt eingefügt werden. Zur Logik des Wiedereröffnens muss halt @hpgo entscheiden.
Na jedenfalls hat er ja nun einigen Input.
-
@frankyboy73
Ich missbrauche mal den Thread kurz - hast Du schon rausgefunden wie ich die Gruppen der ui-control Node expandiere open und close wie in der Hilfe beschrieben funktioniert nicht - focus:true geht.{ "group": { "hide": [ "Wohnzimmer_Fernsehen", "Wohnzimmer_Musik_hören" ], "show": [ "Wohnzimmer_AppleTV" ], "focus": true } }
{ "group": { "hide": [ "Wohnzimmer_Fernsehen", "Wohnzimmer_Musik_hören" ], "show": [ "Wohnzimmer_AppleTV" ], "focus": true, "open": true } }
geht nicht - wenn Du es weißt - kannst ja kurz schreiben - sonst muss ich halt ein Thread aufmachen - ich recherchiere noch etwas.
-
@frankyboy73 said in Change Node soll true und False ausgeben:
@mickym Hi, ich glaube er möchte, wenn die Sonne im Osten steht die Beschattung im Osten schließen und die im Süden und Westen öffnen bzw. offen lassen. Wenn die Sonne im Süden steht, die Beschattung im Süden schließen und die im Osten und Westen öffnen bzw. offen lassen. Steht die Sonne im Westen, die Beschattung im Westen schließen und die im Osten und Süden öffnen bzw. offen lassen. Das ganze noch mit Bewölkungsabfrage und ob Temperatur über 25 Grad.
Ja ganz genau so war das gemeint - hab das leider schlecht beschrieben, sorry dafür!
Ufff ist das viel Input den ihr mir da gebt, danke dafür, das muss ich jetzt noch einige male durchlesen, um alles zu verstehen.
Darf ich euch dann die endgültige Lösung zeigen (zwecks Verbesserungsvorschläge) kann aber noch ein wenig dauern Node Red und insgesamt solche Logiken zu erstelle ist ganz neu für mich wie ihr bestimmt schon bemerkt habt.
Nochmals vielen lieben Dank!
-
@mickym Sorry, mit dem Thema habe ich mich noch nicht beschäftigt, da kann ich dir wohl leider nicht weiter helfen. Ich nutze die Node selber nicht. Mein Dash beschränkt sich eher auf Texte, Buttons, Switches, SQL Chart Ausgaben und Dash Chart Ausgaben. Die Steuerung meines Dash mache ich über Buttons auf der Hauptseite bzw. Hauptseite Aufruf Buttons auf den Unterseiten.
UI Control:
Beispielseiten:
Aber jetzt genug Off Topic. -
@hpgo Hi, wir sind gespannt darauf was du vor hast und wie du es umsetzt. Gerne hier Posten.
Und bei Fragen auch gerne melden. -
@frankyboy73 Ok kein Problem - ich denke ich habs rausgefunden - muss es noch finalisieren. - Will den Thread hier auch nicht mehr missbrauchen. Wenn das also für Dich kein Thema ist - dann sollten wir das lieber wo anders besprechen.
Dir UI spuckt nur die Gruppe aus - wenn man sie zeigt wenn sie eingeklappt war und dann muss man die im 2. Schritt öffnen.
Aber nochmal unter Vorbehalt. - Sag Dir dann wenn es geklappt hat - aber ansonsten sollten wir den Thread nicht kapern.
-
@mickym Ok, mach da dafür lieber ein eigenes Thema auf.
Hast du es bei "hide" für den Anfang mal mit nur einem Tab getestet? Passt das Trennzeichen , (Komma) eventuell nicht wenn du mehrere Tabs verwenden willst?
Aber wie geschrieben lieber ein neues Thema aufmachen.
Die Hilfe ist leider auch nicht immer verständlich, kann es sein das es heißen muss:
"tab_Wohnzimmer_group_Fernsehen" -
@frankyboy73 Dann einfach Rückmeldung - habe herausgefunden wie es funktioniert - Thema damit abgeschlossen und muss hier nicht diskutiert werden.
Wenn Du es genauer wissen möchtest, was das Problem ist - dann mache ich gerne ein eigenen Thread auf, wenn Du meinst sowas könnte von breiterem Interesse sein.
Nur kurz - war kein Syntaxfehler noch sonstiges. Ich habe bestimmte Gruppen aus- und eingeblendet. Wenn Du die ausgeblendeten Gruppen wieder einblendest haben sie den Zustand aus oder eingeklappt - wenn man es konfiguriert. Witzig ist das die ui_control Node nur dann im Output eine Nachricht ausspukt, wenn die Gruppe eingeklappt ist.
Na gut dachte ich mir, dann nimmst halt eine 2. ui_control Node. um die Gruppe wieder aufzuklappen. Also mit einer 2. ui_control Node das Objekt mit open nochmal geschickt. Keine Reaktion - bis ich mich dann festgestellt habe dass das 2. Mal mit einer Inject-Node ging aber nicht aus dem Flow. Der Trick ist man muss die socketid löschen (wahrscheinlich ein Schutz gegen Endlosschleifen). Hab jetzt aber einfach die Gruppen auf nicht einklappbar konfiguriert - das passt.