NEWS
Scripten mit ioBroker oder lieber HM CCU
-
Kurze Frage.
Gibt es eine klare Empfehlung für die Herangehensweise bei Scripten.
Für mich stellt sich die Frage, ob man lieber Variablen auf der CCU anlegt, diese dort mit Programmen befüllt und dann die Daten viw Datenpunkt im ioBorker ausliesst,
oder
direkt hier Scripten mit dem script Adapter, hier auch die Variablen anlegt und diese direkt hier verarbeitet?
Gibt es dazu eine generelle Vorgehensweise oder ist das eher Geschmackssache?
-
Hallo galferitz,
ich kann zwar nicht "professionell / fachlich" antworten, aber ich erstelle die Scripte deutlich mehr in iobroker und habe bisher hier für die Nutzung der Scripte und Variablen in iobroker keine schlechten Erfahrungen gemacht.
Deshalb denke ich es ist Geschmackssache…
Viel Erfolg weiterhin.
Gruß Sven
-
Ich würde auch zu ioBroker tendieren. Ich lasse inzwischen die CCU nur noch die Kommunikation mit den Endgeräten machen.
Variablen und Scripte in ioBroker sind dann zentral an einer Stelle, egal ob sie sich nun auf CCU Geräte oder mein zWave Geräte auswirken.
-
Ok, danke für die ersten Feedbacks.
Nur eine kurze Frage zu den States.
Ich kann ja in der CCU leicht eine Variable anlegen.
Wenn ich im ioBroker ein Variable "var=xy" anlege ist dies ja nur eine temporäre Variable für den Ablauf des Scripts.
Wie kann ich denn hier ein Dauerhafte Variable anlegen, auf die ich dann via (getstate/setstate) zugreifen kann?
Hab zwar "createState()" gefunden aber hier müssen doch dann sicher Pfad, Instanz und mehr definiert werden.
Da tue ich mich doch grundsätzlich mit CCU Variablen einfacher, die ich dann über Stats einfach via ioBroker script abfragen kann, oder ist das inkonsitent?
-
Wie kann ich denn hier ein Dauerhafte Variable anlegen, auf die ich dann via (getstate/setstate) zugreifen kann? `
Genau wie auf der CCU die Systemvariable musst du hier einen Datenpunkt anlegen.Dies machst du per Script oder über den Reiter Objekte im Admin
http://www.iobroker.net/?page_id=5495&l … inzufuegen
Gruß
Rainer
-
Gibt es dazu eine generelle Vorgehensweise oder ist das eher Geschmackssache? ` Alles was du in ioBroker machst hat eine viel höhere Ausfallwahrscheinlichkeit, da du dann ja auf 2 Systeme angewiesen bist…
Es ist ja ein großer Vorteil von homematic, daß die Aktoren untereinander "reden" können - also auch ohne ccu noch was geht.
-
Ich würde dazu raten, States über createState() in einem Script anzulegen.
Bei mir gibt es ein Init-All script, in dem ich alle neuen States anlege. Wann immer ich einen neuen brauche, kommt er in dieses Script.
Das hat gegenüber dem Anlegen über den 'Objekte-Tab' in der Benutzeroberfläche den Vorteil, dass ich bei einer eventuellen Neuinstallation nur das Script einmal durchlaufen lassen muss, und alles ist da.
Du solltest sie außerdem in einem extra 'Zweig' im Objektbaum anlegen. Also bpw javascript.0.MyStates.*
Das sieht dann so aus
createState
createState('javascript.0.MyStates.TemperaturVogelhaus', '', { name: 'Temperatur am Vogelhaus', type: 'number', unit: '°C' }); createState('javascript.0.MyStates.TemperaturTeich', '', { name: 'Temperatur im Teich', type: 'number', unit: '°C' }); createState('javascript.0.MyStates.WetterText', '', { name: 'Wetter im Klartext, type: 'string', });
Dann kannst du zu jeder Zeit mit getState() darauf zugreifen, sie in VIS benutzen usw.
-
Gibt es dazu eine generelle Vorgehensweise oder ist das eher Geschmackssache? ` Alles was du in ioBroker machst hat eine viel höhere Ausfallwahrscheinlichkeit, da du dann ja auf 2 Systeme angewiesen bist…
Es ist ja ein großer Vorteil von homematic, daß die Aktoren untereinander "reden" können - also auch ohne ccu noch was geht. `
Direkt Verknüpfung ist eine Sache. Und die ist empfehlenswert zu nutzen.Es gibt aber noch Programme in CCU. Und genau die (hm-rega) sind nicht so zuverlässig und wenn es mehr wird, tendieren zu abstürzen.
hm-rega hängt aber alle hm-rpcs laufen weiter.
-
Ok, wenn die HM-rega also zu abstützen bzw. hängen neigt lohnt es sich ja schon ( abgesehen von den Direktverknüpfungen bzw. Handlungen die mit Direktverknüpfungen agieren ) die scripte via ioBroker und create states abzuarbeiten.
Das scheint mir nach Euren Kommentaren eine gute Vorgehensweise zu sein.
Danke für die Hinweise hierzu.
-
Es gibt aber noch Programme in CCU. Und genau die (hm-rega) sind nicht so zuverlässig und wenn es mehr wird, tendieren zu abstürzen.
hm-rega hängt aber alle hm-rpcs laufen weiter. ` also das kann ich bei mir nicht nachvollziehen (ca 20 ccu programme). Ich würde die Funktionalität soweit unten wie möglich machen. Erst wenn es nicht geht oder instabil ist, würde ich es raufziehen.
-
Gibt es dazu eine generelle Vorgehensweise oder ist das eher Geschmackssache? `
Alles was du in ioBroker machst hat eine viel höhere Ausfallwahrscheinlichkeit, da du dann ja auf 2 Systeme angewiesen bist…
Es ist ja ein großer Vorteil von homematic, daß die Aktoren untereinander "reden" können - also auch ohne ccu noch was geht. `
Jetzt dürfen wir hier nicht allzuviel durcheinanderwürfeln.
In Homematic gibt es drei Ebenen
-
Direktverknüpfungen: Geräte kommunizieren direkt miteinander ohne CCU
-
- funktionieren auch bei Ausfall der CCU; relativ geringer Funktionsumfang; sehr schnelle Reaktion.
-
- Daher ist diese Methode wo möglich vorzuziehen!
-
Programme: Werden in der WebUI zusammengeklickt
-
- schon relativ umfangreiche Aufgaben lösbar, sehr komplexe Aufgaben können zu Problemen führen
-
Skripte: Werden über die Homematic Scriptsprache erstellt und innerhalb der Programme ausgeführt
-
- noch höhere Funktionsvielfalt, einge Dinge, wie random oder wait stehen nicht (sinnvoll) zur Verfügung; kann bei unsauberer Programmierung zum Absturz von REGA führen.
Wie bereits gesagt, kann man alles davon auch unter ioBroker ausführen. Zusätzlich kommt dazu, dass man in Skripten oder Szenen auch Geräte, die in der CCU nicht vorliegen verwenden kann.
Ich würde immer die CCU mit so wenig wie möglich belasten und alles, insbesondere Dinge die nichts mit Homematic zu tun haben auf ioBroker auslagern.
Gruß
Rainer
-
-
Es gibt aber noch Programme in CCU. Und genau die (hm-rega) sind nicht so zuverlässig und wenn es mehr wird, tendieren zu abstürzen.
hm-rega hängt aber alle hm-rpcs laufen weiter.
also das kann ich bei mir nicht nachvollziehen (ca 20 ccu programme). Ich würde die Funktionalität soweit unten wie möglich machen. Erst wenn es nicht geht oder instabil ist, würde ich es raufziehen.
Na gut 20 Programme sind nicht die Welt.
Außerdem zielte die Frage ja auf die Skripte.
Wenn da 20 Progrämmchen mit "Wenn Tür auf, dann Heizung aus" laufen wird die REGA auch kaum überlastet.
Gruß
Rainer
-
Also ich hatte Riesen Probleme mit der ccu2
Ständig Abstürze, ca. 1-2 mal täglich.
Lösung:
Ich hatte Zuviel Programme, Skripte auf der ccu.
Nachdem ich alles verlegt hatte auf ccu.io, Dashui waren die Probleme weg.
Und jetzt wieder Umzug auf iobroker. Ccu.io ist mittlerweile abgeschaltet.
Ich gebe Rainer grundsätzlich recht. Soviel wie möglich auslagern und weg von der ccu2.
Da ich mehrere Hardware/Systeme nutze, z.b. Auch homedroid fürs Handy muss man sich halt überlegen ob man alle Variablen in iobroker abbildet, mit der Konsequenz, dass homedroid diese dann natürlich nicht kennen kann.
Oder eben halt doch einige auf der ccu2, z.b. Als systemvariablen belässt.
Diese sind dann halt per ccu2 steuerbar.
Fazit von mir:
Habe versucht alle Programme und scripte in iobroker zu erstellen. Ein paar laufen noch auf der ccu2, z.B. tageszeitenscript aus dem Homematic Forum ( hab noch keinen Ersatz gefunden bzw. noch nicht die Lust/Zeit dies zu ersetzen).
Noch ein paar sv auf ccu2.
Mit freundlichen Grüßen
Dieter
-
( abgesehen von den Direktverknüpfungen bzw. Handlungen die mit Direktverknüpfungen agieren ) die scripte via ioBroker und create states abzuarbeiten.
Das scheint mir nach Euren Kommentaren eine gute Vorgehensweise zu sein. `
Ja, das sehe ich auch so. Außerdem ersparst Du Dir so die Einarbeitung in die etwas eigenwillige und im Funktionsumfang stark eingeschränkte Programmierung der CCU. -
Direkte Verknüpfungen verwende ich inzwischen auch nicht mehr.
In der Tat haben direkte Verknüpfungen den Vorteil, dass diese noch funktionieren, wenn die Homeatic CCU oder eine übergeordnete Logik nicht mehr funktioniert. Tatsächlich läuft das Gespann ioBroker und Homemeatic bei mir so stabil, dass ich auf die Direktverknüpfungen verzichten konnte. Ich habe den Verdacht, dass zu viele Direktverbindungen auch zu Instabilitäten auf der CCU führen. Der Verzicht auf Direktverbindungen hat auch den Vorteil, dass die Logik der Programme leichter zu verstehen ist.
-
> Direkte Verknüpfungen verwende ich inzwischen auch nicht mehr.
Das war eigentlich auch mein Plan, drauf zu verzichten. Weis nur nicht genau ob man schnell das DutyCircle Limit erreicht, wenn alles immer über die CCU gehen muß. Dies kann man ja mit Direktverknüpfungen umgeht bzw. reduzieren.
Aber das wird sich noch zeigen. Bin ja erst am Anfang.
-
Theoretisch hat diese Methode keinen Einfluss auf das Duty Cycle, da dass gesamte System davon betroffen ist. Hast Du denn überhaupt Komponenten die Du häufiger schaltest?
-
Es gibt aber noch Programme in CCU. Und genau die (hm-rega) sind nicht so zuverlässig und wenn es mehr wird, tendieren zu abstürzen.
hm-rega hängt aber alle hm-rpcs laufen weiter. `
Ich habe gerade genau diesen Zustand:hm-rega-adapter ist nur gelb, hab dann versucht auf web-gui der homematic zuzugreifen -> Fehlanzeige, es wird aber (seit Tagen) die Seite der homematic angezeigt: The Homematic CCU is not yet ready. Please wait. You will automatically be redirected to the home page.
Alle drei hm-rpc Adapter ssind gruen.
Dann habe ich festgestellt, dass ich ueber den mobile Adapter meine homematic Geraete (Lichtschalter, Rollladen) noch schalten kann.
Das fuehrt mich genau zu der Frage des threads Programme/Scripte in iobroker oder CCU? -> fuer mich jetzt auf jeden Fall -> iobroker! (bin grad paar 1000km weg von zu Hause und kann die homematic nicht neustarten, kann aber paar Programme in iobroker anlegen).
Fuer mich jetzt nur die Frage… welchen Nachteil habe ich ohne den hm-rega-adapter bzw. kann ich es bedenkenlos ohne laufen lassen? Ich weiss nur dass ich keine CCU Variablen mehr sehe oder CCU Programme... noch irgendeine Einschraenkung?