NEWS
Node Red fehler bei Umstieg auf Raspi4
-
@oskar Fast - aber noch nicht ganz. Ich hab den Fehler mal markiert: payload gegen percentage ändern:
EDIT: OK - ich habe es in der bebilderten Anleitung nicht geschrieben.
-
@mickym ich hab's geändert und werde es morgen in ruhe mal teste, ich melde mich wieder, nochmals recht herzlichen Dank, lg Oskar
-
@oskar Du wirst aber wahrscheinlich mit Deinen Homematic Geräten wirklich trotz aller Anpassung kein brauchbares Ergebnis erreichen, wenn Du die nicht kalibriert hast, da durch die Zeitsteuerung die Software der CCU nicht mehr weiß, wo der Rolladen wirklich stand. Im Prinzip ist die Kalibrierung ja auch kein Hexenwerk.
Im Prinzip brauchst Du doch nur die Fahrzeit den Rollladen zu schließen und zu öffnen einmal eintragen. (Mach das ein paar Mal und dann trägst die Zeit an, die am Häufigsten auftritt). Den Rest würde ich so lassen, weil ich nicht glaube, dass Du auf Zehntelsekunden das so genau messen kannst. Also nur ganze Sekunden eintragen.
Dann probierst Du es nochmal ohne Formel aus und dann machst Du die Anpassung in NodeRed - aber nicht vorher.
-
hallo @mickym kannst du mir auch einen Tip zu einem Blockly Skript wegen den RL geben. Zum Öffnen und Schließen des Shelly RL habe ich eine Sonoff Schalter der mit folgendem Skript gesteuert wird
Der Sonoff Schalter hat zwei Punkte einen zum öffnen und er andere zum schließen, jetzt sollte aber wenn der Knopf zum schließen gedrückt wird, kurz darauf der gleiche Knopf für die Stopfunktion verwendet werden
lg Oskar -
@oskar Hallo Oskar ich programmiere meine Logik mit NodeRed - deswegen kann ich Dir da kaum helfen. Es scheint hier 3 Datenpunkte zu geben Rolladen Power, Rolladen Power1, Rolladen Power2.
Rolladen Power1, Rolladen Power2 setzen den Rolladen Power immer auf falsch - was das soll weiß ich nicht (vielleicht ist das eine Art Initialisierung).
Rollladen Power2, simuliert den Close Button, Rollladen Power1, simuliert den Open Button.
Wenn Du die Knöpfe aber zusätzlich noch für die Pause Funktion verwenden willst dann musst Du da noch eine Zeitfunktion einbinden. Wie gesagt - aber da muss Dir jemand anders helfen. Im Prinzip muss man den Zeitpunkt des ersten Tastendrucks speichern und dann eben Close oder Open simulieren und wenn dann innerhalb einer Zeitspanne (1-2 s) nochmal ein Tastendruck kommt, dann eben auf Pause.
Ich könnte Dir hier nur helfen, wenn Du versuchen wolltest das über NodeRed zu realisieren.
Hier mal wie man es mit NodeRed vielleicht lösen könnte über Flow Variablen:
Die Inject Nodes simulieren Deinen Rollladen Power1 bzw. Power 2 und wie Du siehst ändert sich nur das Topic ob die Tasten innerhalb von 2 Sekunden gedrückt werden und kannst damit entweder auf die Pausetaste verzweigen oder eben halt weiter auf Close oder Open.
Vielleicht kann ja @Jan1 helfen sowas mit Blockly umzusetzen.
Ich habs mal versucht so ungefähr im Blockly abbilden - das muss man dann halt für jeden Schalter machen:
aber wie gesagt ich bin kein Blockly Fan und suche mir da immer einen Wolf - bis ich den richtigen Baustein gefunden habe. Die Idee dahinter ist, wenn unter 2000 ms dann muss in Object ID die Pause und ansonsten halt close oder open.
-
@oskar
Für Sonoff mit Tasmota gibts den Shutter Modus und der wird ebenfalls lediglich über eine DP mit 0-100 gesteuert, somit ist das absolut das Selbe wie gehabt
Ich habe bei mir alle Rollläden so am laufen und das funktioniert immer noch wie gewünscht. Ich hatte zuerset einige mit dem Sonoff Dual, weil es zu dem Zeitpunkt keine Shelly 2(2.5) gab und hab die dann durch Shelly2 oder Shelly 2.5 ersetzt, weil die keine Koppelrelais wie der Sonoff brauchen um den Wandschalter dran anzuschließen.Ebenfalls alle Rollläden über NodeRed an Alexa angebunden, damit ich die auch per Sprache steuern kann wie ich will.
-
@mickym Hallo, ich versuch mal mit Node Red, habe deinen Eintrag übernommen, jedoch fehlt mir noch, wo ich die Datenpunkte setzen kann
-
@mickym die Datenpunkte des Schalter
Die Datenpunkte des Shelly
-
@oskar Hallo Oskar - das war ja nur mal eine Idee - wie man es in Node Red umsetzen könnte. Nur musst Du Dich entscheiden, denn wenn dann musst Du Dein Blockly deaktivieren, sonst beeinflusst sich das ja gegenseitig.
Im Übrigen müsstest Du mir ja auch erst mal erklären, auf was wie gesagt die 3 Datenpunkte in Deinem blockly machen:
Rolladen Power, Rolladen Power1, Rolladen Power2.Rolladen Power1 scheint für Öffnen zu sein
Rolladen Power2 scheint für Schließen zu sein.Aber was ist der oberste Rolladen Power - wann ändert der seinen Status?
-
@mickym dies ist der Schalter dazu
-
@oskar Na ja das beantwortet meine Frage nach dem 1. Punkt nicht unbedingt.
Wir können mal Folgendes machen - wenn Du willst. Wir probieren jetzt einfach mal den Shelly mit 3 Inject Nodes öffnen, pause und schließen zu steuern. Dann sehen wir weiter.
Also kopiere mir mal bitte den kompletten Pfad zu den 3 Datenpunkten (Close, Open, Pause) hier rein. Dazu auf der linken Seite den Pfad in die Zwischenablage und dann hier in die CodeTags - wie Du es schon mal gemacht hast.
-
Mal ne Frage, warum macht Ihr jetzt mit den DPs so unnötig rum? Die ganzen Power DPs im Sonoff gibt es, aber zum Steuern brauchst die nicht. Weder in Blockly noch in NodeRed hier wird wie geschrieben, das Selbe Prozedere mit 0-100 wie Ihr das schon hattet umgesetzt und fertig.
Klar kann man das auch mit den anderen DPs machen, wobei das recht umständlich ist, zumal Ihr die Lösung ja eh schon so habt -
@jan1 Na sowie ich @Oskar verstanden habe geht es ihm im Moment nicht darum den Rollladen auf eine bestimmte Position zu bewegen.
Ich habe die Installation so verstanden, dass er zwar einen Shelly hat, der den Rollladen steuert, dass daran aber kein Taster hängt. Der Hardwaretaster ist hingegen dieser gepostete Sonoff Taster der aber nur Datenpunkte im iobroker steuert, aber keinen direkten Kontakt zu dem Shelly hat. So wie ich ihn bisher verstanden habe, drückt er auf dem Sonoff eine dieser beiden Tasten (diese blauen Kreise) und dann fährt der Rollladen eben ganz hoch oder runter.
Er würde aber gerne implementieren, dass er den Rollladen auf seiner Fahrt anhalten kann. Das hat aber nichts mit Prozent zu tun, sondern wenn der Schalter innerhalb eines bestimmten Zeitfensters 2x gedrückt dann pausiert der Rollladen auf der gerade angekommenen Position.
So habe ich das Ganze verstanden - das hat deshalb in meinen Augen nichts mit einer prozentualen Steuerung zu tun.
Du kannst ja mal schauen - ob meine Logik im Blockly so ungefähr richtig wäre.
@Oskar Das dauert halt immer ziemlich lange ,bis ich Rückmeldung von Dir erhalte. Vielleicht sollten wir das auf einen anderen Zeitpunkt verschieben?
-
@mickym
Stimmt da war ja was mit fernsteuern über ein Sonoff. OK, das ist etwas anderes und bedarf dann etwas mehr Aufwand. Wobei das Ganze auch etwas falsch durchdacht sein könnte. Ich habe Schalter an der Wand und mit denen steure ich lediglich hoch runter und stop, was mit der FB über den Sonoff identisch sein sollte und das wiederum geht auch sehr einfach wenn auf beiden Geräten Tasmota läuft (ok, der Shelly müsste Ruels auch mit der original FW verstehen, da kenne ich aber die Syntax nicht). Somit ist das dann wie verkabelt und man schaltet auch genau so, hoch-runter und stop, aber keine direkte Positionsvorgabe.
Wird das aber explizit gewünscht, bin ich mit meiner Lösung raus, da Du hier der Fachmann bist und ich diese Möglichkeit eh etwas overkill finde -
@mickym ja das ist richtig, wenn ich bei den Homatic Rollladen mit dem Tastendruck runterfahre und wenn er einen gewissen weg erreicht habe kann ich ihn mit dem gleichen Tastendruck anhalten und dies würde ich gerne mit dem Sonoff auch tun. Die Alexa erreichen ich von diesem Zimmer aus nicht. Ich hoffe ich habe dies mit der Zwischenablage verstanden
code_text
-
@jan1, jetzt glaube ich es kapiert zu haben
shelly.0.SHSW-25#BA79FE#1.Shutter.Close
shelly.0.SHSW-25#BA79FE#1.Shutter.Open
shelly.0.SHSW-25#BA79FE#1.Shutter.Pause
-
shelly.0.SHSW-25#BA79FE#1.Shutter.Open
-
@oskar So dann schau mal, ob Du nun mit den Inject Nodes den Rollladen steuern kannst.
[ { "id": "57acac26.691b04", "type": "inject", "z": "dce8fa20.2e93c8", "name": "open", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "shelly.0.SHSW-25#BA79FE#1.Shutter.Open", "payload": "true", "payloadType": "bool", "x": 1510, "y": 1680, "wires": [ [ "dcdad394.fbc5" ] ] }, { "id": "71faeb6a.d48af4", "type": "inject", "z": "dce8fa20.2e93c8", "name": "close", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "shelly.0.SHSW-25#BA79FE#1.Shutter.Close", "payload": "true", "payloadType": "bool", "x": 1510, "y": 1740, "wires": [ [ "dcdad394.fbc5" ] ] }, { "id": "f07e966e.427128", "type": "inject", "z": "dce8fa20.2e93c8", "name": "pause", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "shelly.0.SHSW-25#BA79FE#1.Shutter.Pause", "payload": "true", "payloadType": "bool", "x": 1510, "y": 1800, "wires": [ [ "dcdad394.fbc5" ] ] }, { "id": "dcdad394.fbc5", "type": "ioBroker out", "z": "dce8fa20.2e93c8", "name": "", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1760, "y": 1740, "wires": [] } ]
Schaut erst mal so aus:
-
@oskar
Sind das MQTT Befehle zum fernsteuern? Wenn ja, da kenne ich mich noch weniger als mit NodeRed aus.
Ich mach solche Dinge mit Rules direkt und am IOBroker vorbei. So läuft das nahezu in Echtzeit, da der Sonoff direkt mit dem Shelly kommuniziert. Die Schaltvorgänge sind weiterhin im IOBroker zu sehen. Das erspart eben den MQTT Broker dazwischen.
Kann man natürlich aber auch über MQTT machen.Mit den Rueles steuere ich bei mir ein paar Lampen, bei denen bei mir auch die Kabel vom Schalter zur Lampe fehlen. Das funktioniert hier super und das täglich, ist die Lampe im Bad und die Wechselschaltung im Flur
Ich habs ja schon geschrieben, es gibt hier mehr als nur eine Lösung, da ich schön mitlese, übersehe ich aber auch ab und an mal den aktuellen Stand.
-
@jan1 Nein das hat mit MQTT nichts zu tun. Das sind nur die Pfade zu den Datenpunkten im iobroker. Damit kann ich ihm die Nodes schon passend vorkonfigurieren.