homeputer versus ioBroker
Moderator: Co-Administratoren
Re: homeputer versus ioBroker
Hallo,
was hier nur am Rande von Familienvater erwähnt wurde ist, dass es ganz viele spezielle Anweisungen und Funktionen in HPCL gibt die ganz speziell für die Automatisierung sind und die Programmierung stark vereinfachen.
Das ist ja nicht nur die Warte-Anweisung, sondern z.B. auch "einschalten für .. ", Schaltdauer (benutze ich sehr oft) ,Temperaturabsenkung, Setzezeittabellenwert, Feiertag, Sendesms und vieles mehr. Guck mal hier:
http://www.cl-control.de/CL-Software/ma ... sungen.htm
Das alles irgenwie in Javascript basteln? Nee danke.
Ganz abgesehen von den fertig eingebauten Sachen wie Zeittabellen, Anwesenheitssimulation und den unterschiedlichen Aktivierungsmöglichkeiten für Makros. Dass man mit iobroker auch viele andere Systeme steuern kann ist sicher ein Vorteil. Nice to have. Aber dafür auf die vielen Vorteile bei HPCL verzichten und als Nicht-Programmierer mit Javascript rumschlagen. Kommt für mich nicht in Frage.
LG
Lars
was hier nur am Rande von Familienvater erwähnt wurde ist, dass es ganz viele spezielle Anweisungen und Funktionen in HPCL gibt die ganz speziell für die Automatisierung sind und die Programmierung stark vereinfachen.
Das ist ja nicht nur die Warte-Anweisung, sondern z.B. auch "einschalten für .. ", Schaltdauer (benutze ich sehr oft) ,Temperaturabsenkung, Setzezeittabellenwert, Feiertag, Sendesms und vieles mehr. Guck mal hier:
http://www.cl-control.de/CL-Software/ma ... sungen.htm
Das alles irgenwie in Javascript basteln? Nee danke.
Ganz abgesehen von den fertig eingebauten Sachen wie Zeittabellen, Anwesenheitssimulation und den unterschiedlichen Aktivierungsmöglichkeiten für Makros. Dass man mit iobroker auch viele andere Systeme steuern kann ist sicher ein Vorteil. Nice to have. Aber dafür auf die vielen Vorteile bei HPCL verzichten und als Nicht-Programmierer mit Javascript rumschlagen. Kommt für mich nicht in Frage.
LG
Lars
Re: homeputer versus ioBroker
Hallo zusammen,
HPCL läuft wunderbar auf einer normalen CCU und es gibt jede Menge HomeMatic-Module für alle Anwendungen. Darum würde es meiner Meinung nach doch nur Sinn machen etwas anders einzusetzen wenn man unbedingt irgendwelche Geräte braucht die es bei HM nicht gibt - und wenn man dann noch alles was man will wirklich auch in Javascript programmieren kann. Und Javascript ist nun mal keine speziell für Hausautomation ausgelegte Sprache wie die Programmiersprache von HPCL.
Wenn es darum geht, dass man wegen der Geräteanzahl mit einer CCU nicht auskommt und deshalb stärkere Hardware braucht gibt es die c-comatic oder ja jetzt auch die neue CCU3 oder Raspberrymatic.
Ich denke io-broker ist alleine von seiner Serverarchitektur her für eine normale Hausautomation viel zu aufwändig was Hardware und Programmierung angeht. Abgesehen davon, dass man dafür Javascript gut beherschenn muss um da was zu hinzubekommen. Meiner Meinung nach nur was für Freaks.
Grüsse
Wolle
HPCL läuft wunderbar auf einer normalen CCU und es gibt jede Menge HomeMatic-Module für alle Anwendungen. Darum würde es meiner Meinung nach doch nur Sinn machen etwas anders einzusetzen wenn man unbedingt irgendwelche Geräte braucht die es bei HM nicht gibt - und wenn man dann noch alles was man will wirklich auch in Javascript programmieren kann. Und Javascript ist nun mal keine speziell für Hausautomation ausgelegte Sprache wie die Programmiersprache von HPCL.
Wenn es darum geht, dass man wegen der Geräteanzahl mit einer CCU nicht auskommt und deshalb stärkere Hardware braucht gibt es die c-comatic oder ja jetzt auch die neue CCU3 oder Raspberrymatic.
Ich denke io-broker ist alleine von seiner Serverarchitektur her für eine normale Hausautomation viel zu aufwändig was Hardware und Programmierung angeht. Abgesehen davon, dass man dafür Javascript gut beherschenn muss um da was zu hinzubekommen. Meiner Meinung nach nur was für Freaks.
Grüsse
Wolle
Re: homeputer versus ioBroker
Hast du schon mal mit ioBroker gearbeitet?Wolle hat geschrieben:Ich denke io-broker ist alleine von seiner Serverarchitektur her für eine normale Hausautomation viel zu aufwändig was Hardware und Programmierung angeht.
Das stimmt nu überhaupt nicht. Ich kann kein Wort javascript und komme sehr gut mit ioBroker klar.Wolle hat geschrieben:Abgesehen davon, dass man dafür Javascript gut beherschenn muss um da was zu hinzubekommen.
vieles läuft Out of the Box, einiges geht mit node-red, Szenen-Adapter und wenn es schon unbedingt javascript sein muss (für spezielle Wünsche) dann kann man das auch mit Blockly machen - einfach Klötzchen verbinden.
Das stellt aber ein falsches Bild von ioBroker dar.Wolle hat geschrieben:Meiner Meinung nach nur was für Freaks.
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
Re: homeputer versus ioBroker
Würde mich ähnlich wie Rainer auch interessieren wie Du zu diesen Erfahrungen gekommen bist.Wolle hat geschrieben: Ich denke io-broker ist alleine von seiner Serverarchitektur her für eine normale Hausautomation viel zu aufwändig was Hardware und Programmierung angeht. Abgesehen davon, dass man dafür Javascript gut beherschenn muss um da was zu hinzubekommen. Meiner Meinung nach nur was für Freaks.
Die Hardware läuft ab Raspi aufwärts. Was ist daran aufwändig? Es gibt genügend User (was auch die Podiumsfrage auf dem HM-Usertreffen gezeigt hat) die keine CCU mehr haben sondern Raspis einsetzen. Ist das damit auch "viel zu aufwändig"?
Es ist korrekt: Man KANN mit iobroker aufwändige Systeme bauen mit Slaves im ganzen Haus verteilt für spezielle Aufgaben und sowas. Aber das muss niemand.
JavaScript-Kenntnisse sind sicherlich nicht hinderlich um eigene Skripte zu schreiben, man kann es aber auch per Blockly grafisch "Zusammenklicken" oder per node-red als Flows (Easy-Smarthome hat da auf dem Usertreffen auch sowas vorgestellt erinnere ich mich). Und besser als TCL ist JavaScript allemal (my opinion).
Wenn Du schwierigere Erfahrungen mit ioBroker gemacht hast wäre ich (gern als PN) sehr an den Details interessiert ...
Ingo
Re: homeputer versus ioBroker
Hallo Homoran und apollon77,
hier meine Antwort:
Der Import der Geräte von der CCU hat gut funktioniert, die Oberfläche ist schön gemacht.
Ich habe einige Zeit gespielt, aber als ich dann versucht habe einen einfachen Zweizeiler für einen Bewegungsmelder zu machen fingen die Probleme an.
Hier die Programmierung in HPCL, Aktivierung bei Empfang:
Dann ging die Sucherei los: Wie aktiviert man ein Programm eventgesteuert, also so dass es nicht als Regel dauend läuft, sondern nur wenn ein Gerät eine Meldung geschickt hat. Geht das überhaupt?
Und:
Wie sieht dieser simple Zweizeiler in ioBroker-Javascript denn aus? Wie schalte ich ein Gerät nur für eine bestimmte Zeit ein ohne es später mit einem anderen Programm ausschalten zu müssen? Egal ob mit Blockly oder Javascript. Ich bin kein Javascript-Experte, habe damit aber schon viel bei der Webseitenprogrammierung gemacht. Wäre mir dann lieber als Blockly.
Würde mich mal interessieren wie dieser Zweizeiler in ioBroker mit Javascript umgesetzt wird.
In einem anderen Fall schalte ich ein Gerät immer nach maximal 1 Stunde aus, indem das Objekt des Geräts dieses winzige Programm bekommt:
Ich habe keine ähnliche Funktion wie Schaltdauer gefunden um festzustellen wie lange ein Gerät schon läuft.
Das wichtigste bei meiner Hausautomation sind die intelligenten Funktionen und dass ich die einfach realsieren kann. Dazu kann ich nicht jedesmal erst lange im Forum rumfragen. Und ich habe in HPCL etliche tausend Programmzeilen.
Daher habe ich das Experimnet an der Stelle abgebrochen nachdem ich meine eignene Erfahrungen gemacht habe.
Ich habe es probiert, meine Erfahrungen gemacht und meine Meinung dazu hier in meinem Betrag geschrieben, das es meine Meinung ist habe ich ja auch geschrieben.
Das ist definitiv nicht so! Meine Meinung! Und die darf ich haben weil wir in Deutschland Meinungsfreiheit haben.
Liebe Grüsse
Wolle
hier meine Antwort:
Ja, mit dem fertigen SD-Image auf einem Raspi 3.Hast du schon mal mit ioBroker gearbeitet?
Der Import der Geräte von der CCU hat gut funktioniert, die Oberfläche ist schön gemacht.
Ich habe einige Zeit gespielt, aber als ich dann versucht habe einen einfachen Zweizeiler für einen Bewegungsmelder zu machen fingen die Probleme an.
Hier die Programmierung in HPCL, Aktivierung bei Empfang:
Code: Alles auswählen
wenn selbst eingeschaltet und Uhrzeit zwischen Sonnenuntergang und Sonnenaufgang dann
LichtHaustuer einschalten für 3 Minuten
endewenn
Und:
Wie sieht dieser simple Zweizeiler in ioBroker-Javascript denn aus? Wie schalte ich ein Gerät nur für eine bestimmte Zeit ein ohne es später mit einem anderen Programm ausschalten zu müssen? Egal ob mit Blockly oder Javascript. Ich bin kein Javascript-Experte, habe damit aber schon viel bei der Webseitenprogrammierung gemacht. Wäre mir dann lieber als Blockly.
Würde mich mal interessieren wie dieser Zweizeiler in ioBroker mit Javascript umgesetzt wird.
In einem anderen Fall schalte ich ein Gerät immer nach maximal 1 Stunde aus, indem das Objekt des Geräts dieses winzige Programm bekommt:
Code: Alles auswählen
wenn selbst eingeschaltet und Schaltdauer(selbst) > "01:00:00" dann
selbst ausschalten
endewenn
Das wichtigste bei meiner Hausautomation sind die intelligenten Funktionen und dass ich die einfach realsieren kann. Dazu kann ich nicht jedesmal erst lange im Forum rumfragen. Und ich habe in HPCL etliche tausend Programmzeilen.
Daher habe ich das Experimnet an der Stelle abgebrochen nachdem ich meine eignene Erfahrungen gemacht habe.
Ok, aber den brauche ich doch erstmal zusätzlich zu einer CCU wenn ich nicht irgendwelche Container Lösungen mit eigener drangebastelter externen Antenne nehmen will. Und das Wort aufwärts sagt auch einiges. Daher ist es für mich eine Serverarchitektur, und so wird es ja auch oft bezeichnet.Die Hardware läuft ab Raspi aufwärts
Ich habe es probiert, meine Erfahrungen gemacht und meine Meinung dazu hier in meinem Betrag geschrieben, das es meine Meinung ist habe ich ja auch geschrieben.
Es war meine Meinung! Wenn jemand anderere Meinng seit ist es ja ok. Was ich nicht richtig finde ist so zu tun als sei das eine Lösung mit der jeder schnell klarkommen kann.Das stellt aber ein falsches Bild von ioBroker dar.
Das ist definitiv nicht so! Meine Meinung! Und die darf ich haben weil wir in Deutschland Meinungsfreiheit haben.
Liebe Grüsse
Wolle
Zuletzt geändert von Wolle am 04.05.2018, 13:13, insgesamt 4-mal geändert.
Re: homeputer versus ioBroker
Hi Wolle,
In Blockly, falls Dir Javascript nicht liegt, geht das auch.
Auch die anderen Themen sind alle mit Javascript, Blockly oder ggf. sogar (je nach Anwendungsfall) mit einem Kalender und dem iCal-Adapter lösbar (liegt an der Art des Einschaltens und der Dauer).
Gruß,
Eric
Dann schau Dir mal diese Doku zum Javascript an : LinkWolle hat geschrieben:Wie aktiviert man ein Programm eventgesteuert, also so dass es nicht als Regel dauend läuft, sondern nur wenn ein Gerät eine Meldung geschick hat. Geht das überhaupt?
In Blockly, falls Dir Javascript nicht liegt, geht das auch.
Auch die anderen Themen sind alle mit Javascript, Blockly oder ggf. sogar (je nach Anwendungsfall) mit einem Kalender und dem iCal-Adapter lösbar (liegt an der Art des Einschaltens und der Dauer).
Gruß,
Eric
-----------------------------------------------------------------------------------------------
RaspberryMatic (2.35.16.20180708) auf Pi3 mit zig Aktoren, usw.
ioBroker auf Proxmox-VM auf Intel NUC D54250WYK (Core i5-7260U) mit 16 GB RAM und 64 / 256 GB SSD
RaspberryMatic (2.35.16.20180708) auf Pi3 mit zig Aktoren, usw.
ioBroker auf Proxmox-VM auf Intel NUC D54250WYK (Core i5-7260U) mit 16 GB RAM und 64 / 256 GB SSD
Re: homeputer versus ioBroker
Hi Wolle,
niemand hat irgendetwas gegen Deine Meinungsfreiheit gesagt (und würde mir im Traum auch niemals einfallen!), die Aussage/Meinung "nur was für Freaks" oben kam nur sehr Plakativ rüber. Daher haben wir nachgefragt um zu verstehen was für Dich "Freak" bedeutet bzw auf welchen Erfahrungen das aufsetzt.
Es ist auch den iobroker-Entwicklern bewusst das vor allem beim Thema "Einfache Regeln auch einfach erstellen" noch Nachholbedarf besteht und da wird sich auch noch etwas tun.
Zu Raspi: Ich erinnere mich das Homeputer auch auf einem anderen Rechner als der CCU läuft, der dann die ganze Zeit an sein muss. Ist das noch so?
Für Deine Bitte mal zu sagen wie das in ioBroker aussehen kann eine Frage: Was bedeutet das "selbst" in deinen Skripten oben? Bezeichnet es das entsprechende Device?
Ingo
niemand hat irgendetwas gegen Deine Meinungsfreiheit gesagt (und würde mir im Traum auch niemals einfallen!), die Aussage/Meinung "nur was für Freaks" oben kam nur sehr Plakativ rüber. Daher haben wir nachgefragt um zu verstehen was für Dich "Freak" bedeutet bzw auf welchen Erfahrungen das aufsetzt.
Es ist auch den iobroker-Entwicklern bewusst das vor allem beim Thema "Einfache Regeln auch einfach erstellen" noch Nachholbedarf besteht und da wird sich auch noch etwas tun.
Zu Raspi: Ich erinnere mich das Homeputer auch auf einem anderen Rechner als der CCU läuft, der dann die ganze Zeit an sein muss. Ist das noch so?
Für Deine Bitte mal zu sagen wie das in ioBroker aussehen kann eine Frage: Was bedeutet das "selbst" in deinen Skripten oben? Bezeichnet es das entsprechende Device?
Ingo
Re: homeputer versus ioBroker
Hallo,
danke für die Infos.
@Ingo,
HPCL läuft in der CCU, nur wenn man mehrere CCUs braucht weil nicht alle Geräte in eine passen kann man eine Zentrale (c-comatic, auch ein Raspi) benutzen, die CCUs sind dann nur noch Schnittstellen (wie bei ioBrocker).
"selbst" ist ähnlich dem "this" aus der C++-Programmierung, es bezeichnet das Objekt in dem das aktuelle Progarmm steht. Damit kann man z.B.Programmteile in andere Objekte kopieren ohne Änderungen. Sonst steht an Stelle des "selbst" ein Ojektname wenn andere als das eigene Objekt angesprochen werden soll.
Nochmal: Ich habe nichts gegen ioBroker, es ist sehr gut gemacht. Es erfodert aber meiner Meinung nach ein relativ hohes technische Verständnis und eine sehr intenive Beschäftigung mit dem Thema. Das meinte ich mit Freaks. Es sollte nicht abwertend rüberkommen.
Grüsse
Wolle
danke für die Infos.
@Ingo,
HPCL läuft in der CCU, nur wenn man mehrere CCUs braucht weil nicht alle Geräte in eine passen kann man eine Zentrale (c-comatic, auch ein Raspi) benutzen, die CCUs sind dann nur noch Schnittstellen (wie bei ioBrocker).
"selbst" ist ähnlich dem "this" aus der C++-Programmierung, es bezeichnet das Objekt in dem das aktuelle Progarmm steht. Damit kann man z.B.Programmteile in andere Objekte kopieren ohne Änderungen. Sonst steht an Stelle des "selbst" ein Ojektname wenn andere als das eigene Objekt angesprochen werden soll.
Nochmal: Ich habe nichts gegen ioBroker, es ist sehr gut gemacht. Es erfodert aber meiner Meinung nach ein relativ hohes technische Verständnis und eine sehr intenive Beschäftigung mit dem Thema. Das meinte ich mit Freaks. Es sollte nicht abwertend rüberkommen.
Grüsse
Wolle
Re: homeputer versus ioBroker
Hallo Wolle,
Für den zweiten Code gibt es ggf. diese Übersetzung. Die Einschaltdauer wird nicht ab Werk mitgezählt, sondern nur der Einschalt/Ausschaltzeitpunkt (Timestamp). Daraus lässt sich in einem weiteren Skript die Einschaltdauer (zum Beispiel zur Anzeige in der Visualisierung) ausrechnen.
Falls aber ein einfaches Ausschalten nach X Zeit ausreicht, dann geht das so:
Es geht auch in Kurzform (möglichst wenig Zeilen, weniger Code und weniger Übersichtlichkeit):
Für mehr Übersichtlichkeit kann man auch noch Logausgaben einbauen, die einen über die Aktionen des Skripts informieren. Hier würde sich anbieten, das verzögerte Ausschalten zu dokumentieren:
Durch das schmale Layout der Code-Anzeige hier im Forum bei schmalem Browserfenster erscheint das Script wegen der angehängten Kommentare etwas unübersichtlich. Davon sollte man sich nicht abhalten lassen. Also bitte, den Browser schön breit ziehen.
In der Homematic Welt gibt es noch den Datenpunkt ON_TIME. Den kann man natürlich auch nutzen und dadurch Logik vom Backend in den Aktor bringen: ON_TIME in ioBroker setzen
Gruß
Pix
hier ein Beispiel für die den Javascript-Code in ioBroker. Ich weiß nicht genau, was du mit Aktivierung bei Empfang meinst. Evtl. Anwesenheit? Ich nenne es mal Trigger:Wolle hat geschrieben: Hier die Programmierung in HPCL, Aktivierung bei Empfang:Dann ging die Sucherei los: Wie aktiviert man ein Programm eventgesteuert, also so dass es nicht als Regel dauend läuft, sondern nur wenn ein Gerät eine Meldung geschickt hat. Geht das überhaupt?Code: Alles auswählen
wenn selbst eingeschaltet und Uhrzeit zwischen Sonnenuntergang und Sonnenaufgang dann LichtHaustuer einschalten für 3 Minuten endewenn
Und:
Wie sieht dieser simple Zweizeiler in ioBroker-Javascript denn aus? Wie schalte ich ein Gerät nur für eine bestimmte Zeit ein ohne es später mit einem anderen Programm ausschalten zu müssen?
Code: Alles auswählen
const idHaustuerLicht = "hm-rpc.0.SERIENNUMER.1.STATE"; // anpassen, Datenpunkt des Homematic-Adapters für HM-Aktor
const idTrigger = "DATENPUNKT_AUSLÖSER"; // anpassen, irgendeindein Datenpunkt
on({id: idTrigger, change: "ne"}, function (obj) { // Überwachung Trigger auf Änderung
if ( isAstroDay() && obj.state.val) { // wenn Zeit zwischen Sunrise und Sunset und Trigger an
setState(idHaustuerLicht, true); // Licht einschalten
setStateDelayed(idHaustuerLicht, false, 3 * 60 * 1000); // verzögert nach 3min ausschalten
}
});
Wolle hat geschrieben:Code: Alles auswählen
wenn selbst eingeschaltet und Schaltdauer(selbst) > "01:00:00" dann selbst ausschalten endewenn
Für den zweiten Code gibt es ggf. diese Übersetzung. Die Einschaltdauer wird nicht ab Werk mitgezählt, sondern nur der Einschalt/Ausschaltzeitpunkt (Timestamp). Daraus lässt sich in einem weiteren Skript die Einschaltdauer (zum Beispiel zur Anzeige in der Visualisierung) ausrechnen.
Falls aber ein einfaches Ausschalten nach X Zeit ausreicht, dann geht das so:
Code: Alles auswählen
const idHaustuerLicht = "hm-rpc.0.SERIENNUMER.1.STATE"; // anpassen, Datenpunkt des Homematic-Adapters für HM-Aktor
on({id: idHaustuerLicht, change: "ne"}, function (obj) { // Überwachung des Aktors auf Änderung AN/AUS
clearStateDelayed(idHaustuerLicht); // alle bisherigen Timer löschen
if (obj.state.val) { // wenn Aktor angeschalter wurde
setStateDelayed(idHaustuerLicht, false, 60 * 60 * 1000); // verzögert nach 60min ausschalten
}
});
Code: Alles auswählen
on("hm-rpc.0.SERIENNUMER.1.STATE", function (obj) {
clearStateDelayed("hm-rpc.0.SERIENNUMER.1.STATE");
if (obj.state.val) setStateDelayed("hm-rpc.0.SERIENNUMER.1.STATE", false, 60 * 60 * 1000);
});
Code: Alles auswählen
setStateDelayed(idHaustuerLicht, false, 60 * 60 * 1000, function() {
log("Licht Haustür nach einer Stunde ausgeschaltet");
});
In der Homematic Welt gibt es noch den Datenpunkt ON_TIME. Den kann man natürlich auch nutzen und dadurch Logik vom Backend in den Aktor bringen: ON_TIME in ioBroker setzen
Gruß
Pix
150 Kanäle in 75 Geräten und 103 CUxD-Kanäle in 25 CUxD-Geräten (HomeMatic, FS20), CCU1 FW1.519, AddOns: CUxD 1.0, dropbear, E-Mail 1.2, ftp_server und regaWatchdog.
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Re: homeputer versus ioBroker
Ganz kompakte Form (aber sehr unübersichtlich):Wolle hat geschrieben: Hier die Programmierung in HPCL, Aktivierung bei Empfang:Dann ging die Sucherei los: Wie aktiviert man ein Programm eventgesteuert, also so dass es nicht als Regel dauend läuft, sondern nur wenn ein Gerät eine Meldung geschickt hat. Geht das überhaupt?Code: Alles auswählen
wenn selbst eingeschaltet und Uhrzeit zwischen Sonnenuntergang und Sonnenaufgang dann LichtHaustuer einschalten für 3 Minuten endewenn
Und:
Wie sieht dieser simple Zweizeiler in ioBroker-Javascript denn aus?
Code: Alles auswählen
on({id: "SCHALTER_ID", val: true}, () => {
if (compareTime('sunrise', 'sunset', 'between')) {
setState("LAMPE_ID", true);
setStateDelayed("LAMPE_ID", false, false, 3 * 60 * 1000, true));
}
}
Zu:
Code: Alles auswählen
wenn selbst eingeschaltet und Uhrzeit zwischen Sonnenuntergang und Sonnenaufgang dann
LichtHaustuer einschalten für 3 Minuten
endewenn
Code: Alles auswählen
Mach LichtHaustür an für 0,05 Stunden falls mich jemand betätigt und die Zeit mittendrin Abendrot und Tagesanfang ist
Bezüglich Schaltdauer in ioBroker sieht das so aus:
Code: Alles auswählen
Date.now() - obj.state.lc