NEWS
Blinder Anfänger
-
Hallo,
als erstes muss ich sagen, ich bin blutiger Anfänger in Sachen SamrtHome / Node Red etc.
Ich habe mir vor kurzen einen Raspberry 4 incl. Z-Wave USB-Stick bestellt hinzu kam noch ein MCO Home Thermostat (https://manual.zwave.eu/backend/make.php?lang=de&sku=MCOEMH7H-EH2) zum testen.
Das Ziel wäre gewesen mittels iobroker und Node / Red das Thermostat zu einer bestimmten Uhrzeit an.- bzw. auszuschalten.
Leider ist die Sache nun doch nicht so einfach wie er hofft.
Ich finde aktuell keine Möglichkeit eine einfachen Flow zu erstellen bei dem ich per Schalter sagen kann, Schalte Node13 Eigenschaft XY zu Eigenschaft YX.
Um zu vereinfachen, ich will für ein bestimmtest Gerät einen bestimmten vordefinierten Wert per Schalter ändern.
Ich hoffe Ihr könnt mich einigermaßen verstehen für ein Tipps wär ich euch sehr Dankbar.
Gruß
cech -
@cech Ich würde dir empfehlen, Blockly (im Scripts/JavaScript Adapter) anstelle von Node Red zu verwenden. Node Red is super, um Abläufe und Umwandlungen zu machen und Drittsysteme einzubinden, sobald es aber um Logik geht, bist du mit Blockly (oder JavaScript) viel besser dran.
-
@unclesam said in Blinder Anfänger:
@cech Ich würde dir empfehlen, Blockly (im Scripts/JavaScript Adapter) anstelle von Node Red zu verwenden. Node Red is super, um Abläufe und Umwandlungen zu machen und Drittsysteme einzubinden, sobald es aber um Logik geht, bist du mit Blockly (oder JavaScript) viel besser dran.
Hallo und vielen Dank für deine Antwort !
also rein technisch ist mein Vorhaben prinzipiell umsetzbar ?
Ich möchte halt nur eine Entität ? (sagt man das so) von off auf head setzen und umgekehrt und das alle für ein bestimmtes Node (falls man mehr als eines dieser Geräte besitzt) !Gibt es eine Seite wo man sich einfache Beispiele runterladen kann um das ganze dann mal lokal bei sich zu testen ?
Gruß
cech -
@cech sagte in Blinder Anfänger:
Ich möchte halt nur eine Entität ? (sagt man das so) von off auf head setzen und umgekehrt
spanisch??
ich weiß nicht mal annähernd was diese Bezeichnungen bedeutenIch nehme an, du willst einfach an einem Gerät einen Zustand ändern
Installiere dir bitte den javascript (script Engine) Adapter, dann zeigen wir dir einfache Schritte - so wie du sie brauchst
-
@homoran said in Blinder Anfänger:
@cech sagte in Blinder Anfänger:
Ich möchte halt nur eine Entität ? (sagt man das so) von off auf head setzen und umgekehrt
Ich nehme an, du willst einfach an einem Gerät einen Zustand ändern
Installiere dir bitte den javascript (script Engine) Adapter, dann zeigen wir dir einfache Schritte - so wie du sie brauchst
Vielen Dank für deine Antwort, genau einfach ein Zustand ändern
alles klar das mache ich.
Ich melde mich heute Abend wieder !Gruß
cech -
@cech sagte in Blinder Anfänger:
alles klar das mache ich.
Schön!
jetzt missachte ich doch mein Vorhaben dich erst spielen zu lassen, damit "es lernt"So etwas wäre ein schnell erstelltes einfaches Blockly
Bevor hier jedoch jetzt diverse Posts kommen mit:
- so etwas geht auch mit...
- nimm doch einfach...
oder hochoptimierte Verbesserungen, möchte ich diese Beispiel als Einstieg in Blockly verstanden wissen, um einem Einsteiger die Angst davor zu nehmen.
Diese Aufgabe ist schnell gelöst (auch wenn es anders geht) und bringt durch den schnellen Erfolg den Spaß am und die Angst vor Blockly)Optimieren kann man anfangen, wenn das Fahrrad keine Stützräder mehr braucht
-
@unclesam sagte in Blinder Anfänger:
@cech Ich würde dir empfehlen, Blockly (im Scripts/JavaScript Adapter) anstelle von Node Red zu verwenden. Node Red is super, um Abläufe und Umwandlungen zu machen und Drittsysteme einzubinden, sobald es aber um Logik geht, bist du mit Blockly (oder JavaScript) viel besser dran.
Dem würde ich ganz entschieden widersprechen. NodeRed ist was Logiken betrifft Blockly mindestens ebenbürtig. Für Dein Anforderung kannst Du entweder mit Hausmitteln versuchen (Inject Node) oder installieren den BigTimer. Nimm Dir ein konkretes Projekt vor und dann kann man vergleichen. Ich habe jedenfalls bislang auch mit iobroker alle Logik mit NodeRed implementiert und nichts in Blockly.
Bevor Du Dich also für eine Logik Maschine entscheidest, mach in beiden Deine Gehversuche anhand eines konkreten Projektes und triff dann Deine Entscheidung.
Wenn Du Dich jetzt voreilig entscheidest, wird es nur mit viel Aufwand verbunden sein, wieder auf ein anderes System umzusteigen. Node Red ist inzwischen gut in iobroker integriert. Wer behauptet er sein bzgl. Logik mit Blockly besser dran, hat sich in meinen Augen noch nie richtig mit Node Red beschäftigt.
-
@mickym sagte in Blinder Anfänger:
Wer behauptet er sein bzgl. Logik mit Blockly besser dran, hat sich in meinen Augen noch nie richtig mit Node Red beschäftigt.
Dem muss ich jetzt deutlich widersprechen!
Als node-red erstmalig in ioBroker integriert wurde hat mir Bluefox davon erzählt es sei für mich als js-Legastheniker wohl ein hervorragendes Tool.
Ich habe mich damit auch sofort beschäftigt (selbst die damalige Doku hatte ich daraufhin schreiben können) und fand es wirklich toll, bis....
einzelne Funktionen müssen wieder mit function-nodes gelöst werden in denen natives js benötigt wird.
Das kann ich bis heute nicht.
Nicht dass ich es inzwischen nicht halbwegs lesen könnte, aber ich bekomme es ums Verrecken nicht hin die richtige Syntax zu treffen. Das ist wie mit Fremdsprachen: Lesen geht so, sprechen und erst recht schriben eben nicht.Und genau da kam dann irgendwann Blockly mir massiv entgegen.
Klar muss man logisch und strukturiert denken, aber um die Syntax muss man sich bei Blockly keine Gedanken mehr machen.Seitdem arbeite ich nur noch mit Blockly.
Anfangs noch parallel zu node-red, weil es für einige Aufgaben noch keine Blöcke gab, aber seit längerem schon nur noch mit Blockly -
@homoran Nun ich behaupte auch, dass ich die Blocklies einigermaßen lesen kann. Und ich habe am Anfang auch einige function-Nodes gebraucht - heute so gut wie keine mehr. Das ist sicher eine Lernkurve.
Ich finde nun mal Blockly nicht so intuitiv, viel schwerer zu debuggen und gerade bei größeren Flows sehr unübersichtlich.
Du würdest dem nun natürlich widersprechen.
Aber mir geht es nicht darum Dich oder die, die eben gerne Blockly nutzen, zu überzeugen, sondern, dass gerade jemand der NEU ist, sich selbst ein Bild macht.
Und nur darum gehts mir - jeder soll sich selbst ein Bild machen.
Ich kann hier auch 2 Node-Red Möglichkeiten posten, um die Anforderungen des Anwenders "einfachst" darzustellen.
Hier mal mit Hausmitteln:
und hier mal eine komfortable Variante, wenn man sich noch ein Zusatznode installiert:
Mal abgesehen, was einfacher aussieht - mir geht es darum, lasst doch sich die Leute selbst ein Bild machen. Ich mach muss doch nicht das eine abwerten, um das andere zu rechtfertigen.
-
@mickym sagte in Blinder Anfänger:
dass gerade jemand der NEU ist, sich selbst ein Bild macht.
da bin ich voll auf deiner Seite!
und genau deswegen widerspreche ich dir an der einen Stelle auch gar nicht, weil
@mickym sagte in Blinder Anfänger:
Ich finde nun mal Blockly nicht so intuitiv
du da eine subjektive Wahrnehmung schilderst, die bei jedem User anders sein kann.
@mickym sagte in Blinder Anfänger:
Ich mach muss doch nicht das eine abwerten, um das andere zu rechtfertigen.
Hattest du den Eindruck, dass das meine Intention war?
Ich wollte auch nur auf die plakative Aussage "node-red ist was Logiken betrifft Blockly mindestens ebenbürtig" reagieren, dass dieses stimmt, wenn man natives js kann und dass man mit Blockly auch dann Javascript-Code erstellen kann, wenn man kein natives js beherrscht. -
Oh, ein Sprachen-Battle.
ich nehm mal auf der Zuschauerbühne platz.
hatte ich schon erwähnt, das ich javascript toll find? -
@homoran Friede.
Nein mal im Ernst: Wenn wir beide der Meinung sind, dass ein Neuling das selbst entscheiden muss, dann gibt es keine Differenzen.
Ich habe mich ja nur deshalb wegen des 1. Postings von @UncleSam entsprechend geäußert. Das war dann das Gleiche, wie meine Antwort mit dem "mind. ebenbürtig".
@OliverIO Ja Javascript ist toll - damit können aber beide umgehen.
Ich glaube fürs erste kann @cech sich überlegen mit was er starten will.
-
Hallo und vielen Dank für die zahlreichen Antworten
Damit ich mir einen Überblick verschaffen kann, habe ich mich dazu entschlossen beide zu testen
Im Moment teste ich Blockly, macht im ersten Augenblick einen guten Eindruck.Ich habe als erstes versucht, dass oben beschriebene Script von Homoran abzubilden. (Siehe Bild1) Allerdings haben ich hier schon ein Verständisproblem. Wie im Bild 1 zusehen ist, steht bei mir Thermostat mode drinne, diesen will ich ja zukünftig auch ändern (Bild2).
Es gibt insgesamt 4 Modi nämlich "0" für Off dann "1" für Head, "11" für Energy heat und als letztes noch "13" Away (Bild3).An welcher Stelle, denn die fehlt ja sicherlich, müsste ich jetzt einen der 4 Modi eintragen damit bei mir auch etwas passiert, aktuell ist das Thermostat aus.
Vielleicht wäre es gut als erste 2 Schalter zu "programmiern" alá
Schalter1 --> setze Status "0"
Schalter2 --> setze Status "11"um dann später das ganze mit einer bestimmten Zeit automatisch laufen zu lassen.
Im Moment bin ich mehr verwirrt als das ich überhaupt etwas verstehe
-
@cech Wie gesagt ich bin nun nicht der Blockly Spezialist und habe mir die Definition Deines Datenpunktes angesehen.
Der 1. Teil des Blocklies ist meines Erachtens falsch, da der Trigger ja nicht ein anderer Datenpunkt ist, sondern ein Zeitereignis. Als erstes musst Du also einen Einschaltzeitpunkt und einen Ausschaltzeitpunkt deinieren und dann 2 solche Blocklies - einen zum Einschalten und einen zum Ausschalten definieren.
Wenn dieses Ereignis dann eintritt, dann ist der untere Teil insofern anzupassen - den vollständigen Pfad(Node013.Thermostat_Mode.mode) willst Du steuern und zwar nicht mir wahr sondern mit einem der 4 vordefinierten Zahlen (0,1,11,13).Den vollständigen Pfad den Du für das Objekt auswählen musst - kannst Du über die Zwischenablage in Dein Blockly kopieren:
Das heißt das 2. Objekt steuerst Du nicht mit "wahr" sondern mit einem der 4 Zahlen (0,1,11,13).
Ich habe mir mal die Definition Deines Datenpunktes angesehen. Im iobroker solltest Du also über diese Werteliste (s. mein Screenshots aus den Objekten) Deine Heizung steuern können, in dem Du in der Auswahl einen Wert auswählst.
Wie gesagt ich bin kein Blockly Programmieren - aber ungefähr so müsste das für mich aussehen:
Falls Du aber einen Schalter hast dann stimmt ja das ursprüngliche blockly, dann stellt dieser erste Punkt Deinen Schalter dar. Der ist wahr und dann schaltest Du unten eben 1 für wahr und 0 für falsch.
Du brauchst dann aber die komplexere Variante von @homoran dort wird dann Dein Schalter abgefragt ob der wahr oder falsch ist.
Im Prinzip ist für Deinen Mode doch erstmal nur 0=Off und 1=Heat relevant. Die anderen Zustände kann man ja später mal berücksichtigen. Ansonsten müsstest Du uns wahrscheinlich erklären, was der Unterschied zwischen Heat und Energy Heat ist.
Du musst Dich aber grundsätzlich erst mal entscheiden, ob Du über einen Schalter/Datenpunkt schalten möchtest oder über die Uhrzeit. Der Trigger ist hier entscheidend, wie Dein Flow aussieht! Du vereinfachst das also mit einem Schalter nicht, sondern machst es eher komplizierter.
-
vielen Dank für deine Hilfe, ohne dich hätte ich das nicht hinbekommen.
Mein Thermostat wird jetzt geschalten!!! Auch die Uhrzeit wird berücksichtigt, ich habe dein Script etwas angepasst (anbei mein Script) bitte schlagt mich nicht, ich weiß dass das sicher auch eleganter bzw. einfacher/sauberer geht. Für mich zählt erstmal nur eins, es funktioniert und ich bin richtig begeistert. Mir gehen gerade soviele Ideen durch den Kopf
Um mir jetzt auch ein Bild von Node Red machen zu können, will ich heute Abend mal versuchen das ganze 1:1 mit Node Red abzubilden.
Es wäre schön wenn Ihr auch hier mir vielleicht einen kleinen Denkanstoß geben könntet.
Gruß
cech -
@cech bei sovielen Zyklen, empfehle ich Dir für NodeRed über den Palettenmanager Dir den Light Scheduler zu installieren, den ich Dir kurz in der 2. Version als komfortable Methode beschrieben habe. Für Details helfe ich Dir gerne, wenn es dann soweit ist.
-
@cech Hallo, habe hier gerade zufällig reingeschaut. Deinen Zeitplan könntest Du z.B. noch so vereinfachen:
Unter "Zeitplan definieren" "Cron" aktivieren und bei Stunden "bestimmte Stunden" auswählen.