NEWS
Anbindung und schalten von Licht (via Shelly) mit iQontrol
-
Hallo zusammen,
das ist mein erster Post hier, daher möchte ich mich kurz vorstellen. Ich bin Simon und bin dabei erste Gehversuche im Bereich Smarthome zu machen. Ich bin Wirtschaftsinformatiker mit Programmierkenntnissen (sehr eingerostet, aber ich kann Code lesen, kopieren, anpassen usw. wenn er nicht zu komplex ist).Ich habe iobroker auf nem Raspi4B 8GB installiert, habe einen Shelly 1 Plus installiert, MQTT am Laufen und nutze als Vis iQontrol was mir soweit gut gefällt.
Nun versuche ich einen Schalter (iQontrol Typ "Light") für das ein- und ausschalten des Shellys einzusetzen was mir aber nicht ganz gelingt.
Ich habe ein Blockly Script gebaut, mit dem ich über http den Shelly ein und ausschalten kann. Das funktioniert soweit auch gut (ich kann sicher noch vieles verbessern, aber die Grundfunktion ist da).
Der Trigger ist ein Datenpunkt vom Typ boolean. Diesen Datenpunkt verwende auch im iQontrol "STATE" zur Anzeige des Status. Ich habe noch so konfiguriert (Zahnrad) dass er An/Aus statt true/false im Button anzeigt.Nun das Problem:
Irgendwie muss ich ja den Datenpunkt synchron mit dem Status des Shelly halten. Dazu habe ich ein Node-Red Flow der auf den Switch.0 horcht, aus dem JSON dann den status true/false holt und ihn in den Datenpunkt schreibt.Das wiederrum triggert aber dummerweise mein Blockly, was dann zu ein aus ein aus ein aus führt. Doof oder?
Habt ihr eine Idee? Was ist mein Denkfehler bzw. wie kann ich das in iQontrol anstellen? Direkt den Switch Datenpunkt setzen geht nicht, weil da ein JSON Objekt drin steht
{"id":0, "source":"HTTP", "output":false,"temperature":{"tC":53.7, "tF":128.7}} -> output ist hier der Status des Shelly und geschaltet wurde beim letzten mal via HTTP.
Vielleicht kapiere ich auch iQontrol und seine Logik für Buttons/Switches/Lights nicht, aber ich hoffe ihr könnt da helfen.
Lg und frohe Festtage
Simon -
@heissim
Hallo Simon, Willkommen in der Welt von ioBroker.Du könntest beim Blockly einfügen dass der Schalter nur bei einem gewissen Ursprung geschaltet wird, respektive wenn der Ursprung Node-Red ist, dass er dann das Blockly nicht ausführt.
Den Block "Ursprung" findest du unter Trigger --> Objekt ID
Ich hätte dir aber eine elegantere, schnellere und viel einfachere Lösung, ausser du möchtest es zwingend mit Blockly und Node-Red machen
Unter "Adapter" findest du den Shelly-Adapter.
Dieser erkennt automatisch sämtliche Shelly´s in deinem Netzwerk. Damit lassen sich diese problemlos schalten, auslesen, Firmware-Update, usw. realisieren, und das OHNE Blockly und Node-Red.shelly.0.[dein Shelly].Relay0.Switch --> Damit kannst du das Shelly ein-/ausschalten
shelly.0.[dein Shelly].Relay0.Power --> Je nach verbautem Shelly siehst du hier die LeistungsaufnahmeGruss Kusi
-
@kusi Hallo und vielen Dank
Was ich nicht erwähnt habe ist dass ich einen Shelly 1 Plus habe. Ich habe den Adapter Version 5.0.0 installiert da der 4.x.x die neuen nicht unterstützt.
Aber die Idee mit Ursprung ist schonmal sehr gut und ich teste das.Es gibt auch ein Skript das alle Shelly erkennt und anlegt (und das habe ich auch mal ausgeführt und habe vermutlich daher den shelly unter mqtt aber sicher bin ich da nicht)
LG und bis bald
-
@heissim Shelly 1 plus kannte ich bis jetzt noch nicht.