Themabewertung:
  • 2 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Eigener MyGekko-Node für Node-Red
#61
Hallo fisch,

sieht so aus, als sollte es so funktionieren.

Unter "Bedingung" einen HTTP-Endpunkt von node-red hinterlegen.
In Node-Red die Logik für diesen Endpunkt festlegen -> Google-Kalender -> aktiv oder nicht

Die Zeitschaltuhr dauerhaft einschalten. Sollte dann nur aktiv sein, wenn die Bedingung erfüllt ist.

Viel Erfolg.
#62
(21.01.2020, 09:13)Bluescreen schrieb: Hallo fisch,

sieht so aus, als sollte es so funktionieren.

Unter "Bedingung" einen HTTP-Endpunkt von node-red hinterlegen.
In Node-Red die Logik für diesen Endpunkt festlegen -> Google-Kalender -> aktiv oder nicht

Die Zeitschaltuhr dauerhaft einschalten. Sollte dann nur aktiv sein, wenn die Bedingung erfüllt ist.

Viel Erfolg.

Kannst du mal ein Beispiel machen wie so ein HTTP Endpunkt aussehen muss?
Hab das selber schon mal versucht aber nicht hinbekommen.
#63
Naja, mal schnell aus der Hüfte geschossen, als kleine Stütze:

Das in deinen Node-Red importieren:
Code:
[
    {
        "id": "2d37fea7.1bead2",
        "type": "http in",
        "z": "8e46af58.6dae4",
        "name": "GET Spaetschicht",
        "url": "/mygekko/calendar/spaetschicht",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 190,
        "y": 120,
        "wires": [
            [
                "9b0eb64a.7246f8"
            ]
        ]
    },
    {
        "id": "9b0eb64a.7246f8",
        "type": "change",
        "z": "8e46af58.6dae4",
        "name": "Setzte Rueckgabewert",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"value\":\"1\"}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 420,
        "y": 120,
        "wires": [
            [
                "58ac7a4f.6d6444"
            ]
        ]
    },
    {
        "id": "58ac7a4f.6d6444",
        "type": "http response",
        "z": "8e46af58.6dae4",
        "name": "HTTP-Response",
        "statusCode": "200",
        "headers": {},
        "x": 650,
        "y": 120,
        "wires": []
    }
]

Nach dem Deployen solltest du unter http://dein-node-red:1880/mygekko/calendar/spaetschicht ein kleines JSON-Objekt zurückbekommen.
Das enthält eigentlich nur einen Wert für "value"
Code:
{"value":"1"}

Dieser Wert für "value" wird im Knoten "Setze Rückgabewert" festgelegt, hier müsstest du deine Google-Logik unterbringen und den Wert für Value eben auf "1" oder "0" setzen, je nachdem ob es aktiv sein soll oder nicht.

Alles wie immer ungetestet, aber ich hoffe es hilft weiter...
#64
Dein Beispiel funktioniert, aber verstehen tue ich es nicht so recht.  Confused
Wenn ich die Seite aufrufe wird der Change-Node ausgelöst und der "ermittelte" Wert der Seite übergeben. 

Wie schaffe ich es aber das z.B. ein Wert aus einem MQT-Node mittels Http-Response zur Verfügung steht. Dieser "spuckt" ja nur einen Wert aus sobald er sich geändert hat.

Folgendes habe ich vor:
Mein Shelly HT übermittelt seinen Wert (Temperatur, Feuchtigkeit, Batterie) an den MQT Server und dieser soll durch Node Red über HTTP, fürs Gekko, abgreifbar werden. 
Beispiel 192.168.1.25:1880/ShellyHT1

Damit will ich verhindern das Gekko Werte verpasst, da ja die Wachzeiten des Shellys sehr gering sind.
#65
Hallo Strabbit,

das wird jetzt nicht ganz so einfach, da ich weder einen MQTT-Server, noch einen Shelly habe.
Ausserdem kenne ich dein Setup nicht, Topics in MQTT, Datenformate usw.

Aber grundsätzlich ist die Lösung überschaubar und ich würde das folgendermaßen lösen:

Schritt 1: Du abonnierst in Node-Red dein entsprechendes Topic (mqtt-in node), an welchen der Shelly seine Daten meldet.
Diese Daten schreibst du z.B. in Flow-Variablen(flow.set funktion in node-red).
Schritt 2: In meinem Beispiel für den HTTP-Response liest du an der Stelle "Setze Rueckgabewert" einfach nur immer die gespeicherten Flow-Variablen(flow.get funktion in node-red) und gibst diese Werte zurück(an den http-response node).
Fertig.

Wenn du mir ein paar mehr Infos zukommen lassen könntest, deine bisherigen Flows oder deinen aktuellen Stand, dann könnte ich schon mal drüberschaun, das werden wir schon irgendwie hinbekommen :-)
#66
Hallo,

da ich den Weg über HTTP-Endpunkte in Node-Red ganz Interessant finde, habe ich mal versucht, die Info von BlueScreen umzusetzen.
... bei mir jedenfalls funktioniert es :-)

Code:
[
   {
       "id": "f7b991c3.d41e",
       "type": "tab",
       "label": "Flow 3",
       "disabled": false,
       "info": ""
   },
   {
       "id": "90e26811.721fa8",
       "type": "http in",
       "z": "f7b991c3.d41e",
       "name": "GET Spaetschicht",
       "url": "/mygekko/calendar/spaetschicht",
       "method": "get",
       "upload": false,
       "swaggerDoc": "",
       "x": 210,
       "y": 140,
       "wires": [
           [
               "f7f86919.1afb38"
           ]
       ]
   },
   {
       "id": "3f1512cf.b745ee",
       "type": "http response",
       "z": "f7b991c3.d41e",
       "name": "HTTP-Response",
       "statusCode": "200",
       "headers": {},
       "x": 670,
       "y": 140,
       "wires": []
   },
   {
       "id": "a39ecd0.227ad3",
       "type": "mqtt in",
       "z": "f7b991c3.d41e",
       "name": "",
       "topic": "shellies/shelly1pm-Waschmaschine/relay/0/power",
       "qos": "2",
       "datatype": "auto",
       "broker": "27ccde99.c8dde2",
       "x": 380,
       "y": 80,
       "wires": [
           [
               "b6badb95.a8ccc8",
               "8a3e0eb4.47469"
           ]
       ]
   },
   {
       "id": "b6badb95.a8ccc8",
       "type": "function",
       "z": "f7b991c3.d41e",
       "name": "",
       "func": "flow.set(\"power\", msg.payload);\nreturn msg;",
       "outputs": 1,
       "noerr": 0,
       "x": 690,
       "y": 80,
       "wires": [
           []
       ]
   },
   {
       "id": "8a3e0eb4.47469",
       "type": "debug",
       "z": "f7b991c3.d41e",
       "name": "",
       "active": true,
       "tosidebar": true,
       "console": false,
       "tostatus": false,
       "complete": "true",
       "targetType": "full",
       "x": 680,
       "y": 40,
       "wires": []
   },
   {
       "id": "f7f86919.1afb38",
       "type": "function",
       "z": "f7b991c3.d41e",
       "name": "",
       "func": "msg.payload = flow.get(\"power\")\nreturn msg;",
       "outputs": 1,
       "noerr": 0,
       "x": 420,
       "y": 140,
       "wires": [
           [
               "3f1512cf.b745ee"
           ]
       ]
   },
   {
       "id": "27ccde99.c8dde2",
       "type": "mqtt-broker",
       "z": "",
       "name": "",
       "broker": "127.0.0.1",
       "port": "11883",
       "clientid": "",
       "usetls": false,
       "compatmode": true,
       "keepalive": "60",
       "cleansession": true,
       "birthTopic": "",
       "birthQos": "0",
       "birthPayload": "",
       "closeTopic": "",
       "closeQos": "0",
       "closePayload": "",
       "willTopic": "",
       "willQos": "0",
       "willPayload": ""
   }
]

Man muss natürlich das MQTT-Topic ersetzen, aber ansonsten scheint das recht gut zu funktionieren.
#67
Seit der Gekko HTTP-Requests nativ ausführen kann, sind in Verbindung mit Node-Red eigentlich keine Grenzen mehr gesetzt.
Theoretisch und auch praktisch kann man quasi so gut wie jedes Gerät zumindest über diesen Weg (Node-Red mit HTTP) an den Gekko anbinden.
Der Kreativität sind da keine Grenzen gesetzt...
Auch z.B. das Schalten eines TVs mit API etwa ein LG-Gerät lässt sich damit abbilden...
#68
Top. Funktioniert jetzt alles so wie es soll.


Hatte ja HIER mal das Problem erwähnt, dass die Shelly's HT seit einem Update nur noch sehr kurz online sind und der Gekko es eventuell nicht mehr schafft den Wert ab zugreifen.

Wenn man die IP des Shelly's im Browser aufruft, hat man bei "Internet setting" die Möglichkeit das der Shelly aktiv an ein MQTT Topic sendet. Die Option ist mittels App nicht verfügbar.

Dadurch das ich diesen Wert jetzt beliebig in eine Flow-Variable speichern kann, sobald sich der MQTT-Topic-Wert ändert, ist das Problem hinfällig. Der letzte, aktiv vom Shelly gesendete Wert steht dem Gekko somit immer zur Verfügung.


Danke für die Hilfe. Ich hab das jetzt so gelöst. (Beispiel mit 3 Shelly's)

Code:
[{"id":"5bf4ffbd.c7e46","type":"tab","label":"Shelly HT","disabled":false,"info":""},{"id":"5a6a835d.b2b73c","type":"http in","z":"5bf4ffbd.c7e46","name":"/Shelly/HT","url":"/Shelly/HT","method":"get","upload":false,"swaggerDoc":"","x":100,"y":620,"wires":[["d7622984.f7d2f8"]]},{"id":"4f6f3ad9.8560f4","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('46-Temperatur',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":80,"wires":[]},{"id":"d7622984.f7d2f8","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"var o=\n        {\n        Temp_46:flow.get('46-Temperatur',0),\n        Feucht_46:flow.get('46-Feuchtigkeit',0), \n        Batt_46:flow.get('46-Batterie',0),\n        Temp_49:flow.get('49-Temperatur',0),\n        Feucht_49:flow.get('49-Feuchtigkeit',0), \n        Batt_49:flow.get('49-Batterie',0),\n        Temp_31:flow.get('31-Temperatur',0),\n        Feucht_31:flow.get('31-Feuchtigkeit',0), \n        Batt_31:flow.get('31-Batterie',0)\n        };\nmsg.payload  = JSON.stringify(o);\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":620,"wires":[["a9250ec6.4a3e3"]]},{"id":"1cbef30a.4a99cd","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"46-Temperatur","topic":"shellies/46-shelly/sensor/temperature","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":120,"y":80,"wires":[["4f6f3ad9.8560f4"]]},{"id":"a9250ec6.4a3e3","type":"http response","z":"5bf4ffbd.c7e46","name":"HTTP-Response","statusCode":"200","headers":{"content-type":"text/html"},"x":450,"y":620,"wires":[]},{"id":"811244cc.f13ea8","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"46-Feutigkeit","topic":"shellies/46-shelly/sensor/humidity","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":110,"y":120,"wires":[["cb1f88e3.5f0188"]]},{"id":"3b9881e9.cdce6e","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"46-Batterie","topic":"shellies/46-shelly/sensor/battery","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":100,"y":160,"wires":[["5063bd42.7934b4"]]},{"id":"cb1f88e3.5f0188","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('46-Feuchtigkeit',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":120,"wires":[]},{"id":"5063bd42.7934b4","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('46-Batterie',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":160,"wires":[]},{"id":"8aae745d.c6b918","type":"comment","z":"5bf4ffbd.c7e46","name":"Nebengebäude","info":"","x":120,"y":40,"wires":[]},{"id":"40934432.6b281c","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('31-Temperatur',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":260,"wires":[]},{"id":"5b004095.e1754","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"31-Temperatur","topic":"shellies/31-shelly/sensor/temperature","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":120,"y":260,"wires":[["40934432.6b281c"]]},{"id":"ed4d314.2bc29d","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"31-Feutigkeit","topic":"shellies/31-shelly/sensor/humidity","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":110,"y":300,"wires":[["b33134c7.cd25c8"]]},{"id":"de25a419.92e628","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"31-Batterie","topic":"shellies/31-shelly/sensor/battery","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":100,"y":340,"wires":[["240b7093.1ba26"]]},{"id":"b33134c7.cd25c8","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('31-Feuchtigkeit',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":300,"wires":[]},{"id":"240b7093.1ba26","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('31-Batterie',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":340,"wires":[]},{"id":"fdd22cd5.d273f","type":"comment","z":"5bf4ffbd.c7e46","name":"Dachboden","info":"","x":110,"y":220,"wires":[]},{"id":"585cbe6f.6c03f","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('49-Temperatur',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":440,"wires":[]},{"id":"7c2b5c50.e35964","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"49-Temperatur","topic":"shellies/49-shelly/sensor/temperature","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":120,"y":440,"wires":[["585cbe6f.6c03f"]]},{"id":"2a5156a3.de3a8a","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"49-Feutigkeit","topic":"shellies/49-shelly/sensor/humidity","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":110,"y":480,"wires":[["ff5894c5.2e7a98"]]},{"id":"b79f6534.a90fd8","type":"mqtt in","z":"5bf4ffbd.c7e46","name":"49-Batterie","topic":"shellies/49-shelly/sensor/battery","qos":"2","datatype":"auto","broker":"7438383a.9fc788","x":100,"y":520,"wires":[["62edd254.f1221c"]]},{"id":"ff5894c5.2e7a98","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('49-Feuchtigkeit',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":480,"wires":[]},{"id":"62edd254.f1221c","type":"function","z":"5bf4ffbd.c7e46","name":"","func":"flow.set('49-Batterie',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":270,"y":520,"wires":[]},{"id":"c95f88aa.0ba268","type":"comment","z":"5bf4ffbd.c7e46","name":"Formekarium","info":"","x":110,"y":400,"wires":[]},{"id":"7438383a.9fc788","type":"mqtt-broker","z":"","name":"MQTT Broker","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
#69
Mein NoteRed läuft jetzt seid einigen Wochen, nun ist mir ein Problem aufgefallen.
Meine Jalousien fahren Abends  per Zeitschaltuhr runter und Morgens alle außer die Schlafzimmer wieder hoch. Möchte ich nun im Schlafzimmer die Jalousie per Alexa hochfahren, geht das nicht. Gebe ich aber als erstes den Befehl die Jalousie runterzufahren (obwohl schon unten), und anschließend  Jalousie hoch, dann fährt sie auch hoch. 
Mein Gedanke, der Note erkennt die Stellung von der Jalousie nicht. (diese Jalousie läuft über das RIO, da sie mit Notkurbel ist). Im Flow des Gekko sieht das so aus. Die Jalousie  sollte da gerade bei 100% sein. (Alle anderen laufen über SMI) da schein das Problem nicht zu sein.
Kann mir da jemand helfen, Heiko


Angehängte Dateien Thumbnail(s)
   
MyGekko im OKAL-DFH-Haus , alle Jalousien über MyGekko , 3x Klingel über MyGekko,  Alexa-Skill für MyGekko, 19x Shelly1 eingebunden +5x shelly2,5 + 1x Shelly1 als Taster-Sender +5x Shelly H&T 
#70
Das liegt daran das du den Alexa Node nur als Ausgang benutzt und dieser sich nur seinen letzten Befehl und somit die Position des Rollos merkt. Wenn du die Rollos mittels Taster betätigst muss dies auch an den Alexa Node mitgeteilt werden. 
Auf deinem Bild muss der linke Anschluss des Alex Node noch konfiguriert werden.
#71
(08.02.2020, 22:23)Strabbit schrieb: Das liegt daran das du den Alexa Node nur als Ausgang benutzt und dieser sich nur seinen letzten Befehl und somit die Position des Rollos merkt. Wenn du die Rollos mittels Taster betätigst muss dies auch an den Alexa Node mitgeteilt werden. 
Auf deinem Bild muss der linke Anschluss des Alex Node noch konfiguriert werden.

Danke für die schnelle Antwort. 
Leider weis ich nicht so recht wie und was.
Mir Fehlt halt einfach das Wissen um die Zusammenhänge.
MyGekko im OKAL-DFH-Haus , alle Jalousien über MyGekko , 3x Klingel über MyGekko,  Alexa-Skill für MyGekko, 19x Shelly1 eingebunden +5x shelly2,5 + 1x Shelly1 als Taster-Sender +5x Shelly H&T 
#72
Dein Rollo kann momentan über drei Varianten gesteuert werden. 

1. Über Schalter, also Gekko 

oder

2. im Node
   a. Manuell mittels Inject
   b. der Alexia-Node  ("Jalousie Eltern")

[Bild: m32qhzj8.png]


Beide für sich funktionieren. Aber sobald du einen Schalter bestätigst erfährt das der Alexia Skill nicht, da der Eingang des Nodes bei dir leer ist. 



Fährst du das Rollo mittels schalter runter und versuchst dann Alexa zu sagen "sie" soll es hochfahren, geht "sie" noch davon aus das es oben ist und macht einfach nichts, da aus "ihrer" Sicht kein Handlungsbedarf besteht.
Du musst zusätzlich die Rolloposition auslesen und bei Änderung dies dem Alexia-Node mitteilen, sodass dieser auch auf "aktuellen Stand" ist.

[Bild: c7gbbhrn.png]
#73
Vielleicht kann mir ja jemand helfen, nicht nur das Problem zu analysieren, sondern es auch zu beheben.. Denn das ist der Punkt, an dem ich nicht weiterkomme.

@ Rupert, Wieso gibt es eigentlich keinen vernünftigen Alexa Skil für My Gekko?
MyGekko im OKAL-DFH-Haus , alle Jalousien über MyGekko , 3x Klingel über MyGekko,  Alexa-Skill für MyGekko, 19x Shelly1 eingebunden +5x shelly2,5 + 1x Shelly1 als Taster-Sender +5x Shelly H&T 
#74
Den Wert via API abgreifen und wenn verändert Mittel Funktion anpassen und Alexia Node mitteilen. 

Schau mal ein paar Posts weiter vorn, das musst du dann nur etwas anpassen.
#75
Hallo, und danke für die Antwort.
Da mir aber leider immer noch die Grundlagen und Zusammenhänge im Bereich NodeRed fehlen, ist eine Erklärung in Stichpunkten für mich leider nichts wert, auch wenn sie sicherlich gut gemeint ist.
Ich habe also von deinen Ausführungen nichts verstanden, und kann es deshalb auch nicht umsetzen. Ich würde es ja auch gerne aufgeben, wenn es einen funktionierenden Alexa Skill für MyGekko geben würde.
MyGekko im OKAL-DFH-Haus , alle Jalousien über MyGekko , 3x Klingel über MyGekko,  Alexa-Skill für MyGekko, 19x Shelly1 eingebunden +5x shelly2,5 + 1x Shelly1 als Taster-Sender +5x Shelly H&T 
#76
Schaust du >>>hier<<<. Da ist ein Beispiel für den Apple Home Node. Musst es halt „nur“ auf Alexia anpassen.
Vieles steht hier bereits in dem Thread, musst halt nur mal auch die vorherigen Seiten mit betrachten  Blush


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Xiaomi Roborock S55 in Gekko einbinden Node Red Strabbit 4 378 15.02.2020, 03:01
Letzter Beitrag: Strabbit
  MyGekko-QueryAPI Anbindung an Node-Red über offizielles Repository Bluescreen 17 2.683 17.12.2019, 23:13
Letzter Beitrag: DRAGandDROP
  Node - RED rjud 3 2.354 04.01.2019, 15:22
Letzter Beitrag: Marco
  Node-Red Anwender hier? santos 0 956 07.10.2018, 17:11
Letzter Beitrag: santos

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste