Vorgehensweise Migration CCU2 --> IObroker

Moderator: Co-Administratoren

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von alchy » 25.07.2017, 16:08

Hab mal einen Teil der Beiträge abgetrennt - wenn jemand noch mehr haben will, dann bitte Beiträge entsprechend melden.
Ich mach das dann in der Nacht von einem Rechner aus.


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

AlGu
Beiträge: 69
Registriert: 03.10.2012, 12:46

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von AlGu » 25.07.2017, 19:50

Ok hier mal ein Beispiel eines CCU-Programmes vor meiner Migration.
Dort ist ein Programm das alle Fenster, Türen und Bewegungsmelder überwacht und bei Änderung auslöst.
Ueberwachung Extern.png
Bild 1 (CCU Programm)
In dem dann ausgelösten Skript wird das Gerät gesucht, dass z.B. geöffnet ist oder die Bewegung erkannt hat (für die Push-Nachricht) und setzte den Alarm_Extern auf aktiv.
Ueberwachung Extern-JS.png
Bild 2 (CCU Skript)
Das von mir in ioBroker daraus entstandene Skript sieht z.B. so aus:

Code: Alles auswählen

var dpIdsFenster = 'state[id=.STATE](functions=Sicherheit_Extern)(functions=Fenster)';
var dpIdsBewegungsmelder = 'state[id=.MOTION](functions=Sicherheit_Extern)';
var dpIdsTueren = 'state[id=.STATE](functions=Sicherheit_Extern)(functions=Tueren)';

var dp1Id = "javascript.0.Homematic.Alarm_Extern";
var dp2Id = "javascript.0.Homematic.Alarm_Extern_Aktiv";

$(dpIdsFenster).on(function(dp) {
    if(dp.state.val !== 0) {    
        pruefeAlarmExtern(dp);
    }
});
$(dpIdsBewegungsmelder).on(function(dp) {
    if(dp.state.val) {
        pruefeAlarmExtern(dp);
    }
});
$(dpIdsTueren).on(function(dp) {
    if(dp.state.val) {
        pruefeAlarmExtern(dp);
    }
});

function pruefeAlarmExtern(dp) {
    if(gCheckCCUStarted() && getState(dp1Id).val) {
        var geraete = gCheckGeraete(dpIdsFenster);
        geraete += gCheckGeraete(dpIdsBewegungsmelder);
        geraete += gCheckGeraete(dpIdsTueren);
        if(geraete !== '') {
            setState(dp2Id, true);
            gSendPushMessage("Alarmanlage|Alarm EXTERN wurde ausgelöst: " + geraete + "!|100");
        }
    }
}
Sicherlich lässt sich auch dieser Code noch optimieren und noch kürzer schreiben. Für Code-Refactoring hatte ich noch keine Zeit :D
Die Methoden "gCheckCCUStarted", "gCheckGeraete" und "gSendPushMessage" sind globale Methoden in einer anderen Skript-Datei. Da ich diese immer wieder benutze.

Bei Fragen gerne melden.
Gruß AlGu

MathiasZ

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von MathiasZ » 25.07.2017, 20:01

Danke für die schnelle Antwort.
da ich aber, was Java angeht, eine absolute 0 bin werde ich mein Glück mit Blockly versuchen..........
Hast Du das Programm noch auf der CCU oder hast Du sie deaktiviert?
Gruß,
Mathias

Benutzeravatar
Black
Beiträge: 5469
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von Black » 25.07.2017, 20:22

ich denke mal, das optimale wird irgendwo dazwischen liegen und auch bei jedem vllt je nach persönenlichen Präferenzen etwas anderes.

Ich habs bei mir so aufgeteilt:

Elemente, die immer funktionieren sollten bzw soviel wie nur möglich: in Direktverbindungen, da ist es egal, ob sich eine CCU oder ein IOBroker ins Nirvana setzen.

Elementarprogramme in der CCU:
z.B. auto quit von Servicemeldungen
Steuern von Rollos
Teilweise Licht und Heizungsfuntion im Anbau
Aussenlicht und Bewegungsmelder

Wenn da der IOBroker in Nirvana stürtzt, läuft die Hausautomatisierung trotzdem weiter

High Level programme auf IOBroker in Javascript
eine CCU muss sich nicht mit Kalendern, Statistiken, Benzinpreisen, Wetterdaten rumschlagen.
Sie kann es, ja, aber bevor ich mir da die Finger in HM Script breche oder versuche das in TCL zu proggen,
da ist mir Javascript lieber, im zweifelsfalle in eigener Pythonprozess, geht auch

für derartige Anwendungen ist ein RPI2/3 oder wie bei mir ein OrangePi die deutlich bessere wahl.
Seit dem rennt meine CCU auch locker durch, meist nur mal unterbrochen von einem Firmwareupdate.

ich hab o.g. Programme in javascript nachgeproggt und aus der CCU entfernt.

Nur kleiner tip für die Jacascript Anfänger unter IOBroker.
legt 2 Javascript instanzen an, unter javascript.0 die Scripte die Produktiv laufen
und unter javascript.1 die Versuchs und Bastelprgramme, die noch nicht stable sind.
Grund, gröbere programmfehler schiessen den Adapter ab, und ist dieses ein andere als der Produktivadapter, laufen
zumindest die Produktivscripte noch.

Ansonsten mal den Tip, wenns eine etwas grössere Installation wird mit vielen Adaptern, ruhig mal über einen OrangePi plus 2e nachdenken.
das Dingen ist schneller, hat 2 GB Ram und 16 GB EMMC (Quasi Nand Flash) on Board. Und die Armbian Installaton läuft stabil.
Alleine eine CCU mit Rega, RFD,IP, und wired braucht 4 Adapter und damit 4 gestartet Node.js instanzen mit jeweils Speichert

und im zusammenspiel von IOBroker und CCU lassen sich von IOBroker aus Paramsets lesen und schreiben. das zu verfeinern ist immo noch ein Projekt bei mir

gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

MathiasZ

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von MathiasZ » 27.07.2017, 21:00

Hi Black,
Danke für so viel Input.
Und AIGu, ich denke es wird ein Winter-Projekt. Ich muß noch bei dem Wäschetrockner erst mal noch den Duty cycle in den Griff bekommen. Alle anderen Programme laufen Gott sei Dank recht stabil.
Gruß,
Mathias

Gesendet von meinem SM-N915FY mit Tapatalk

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von dtp » 28.07.2017, 09:44

Hi Black,

so ähnlich handhabe ich das auch. Allerdings bin ich, was meine ioBroker-Installation angeht, durchaus zufrieden mit der Leistung des Raspi 3.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MathiasZ

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von MathiasZ » 28.07.2017, 10:09

Ich möchte Programme wie alle Lichter aus und dergleichen als erstes nach IObroker umziehen lassen.
Wenn die CCU bzw der Barbone abschmiert, muß ich eben einen Rundgang durch das Haus machen.
Alle wichtigen Programme sollen weiter auf der CCU weiter laufen.
Aber wie bereits geschrieben, das wird mein Winter-Projekt, weil doch allerhand dran hängt.
Gruß,
Mathias

Gesendet von meinem SM-N915FY mit Tapatalk

Bockwurst19
Beiträge: 11
Registriert: 15.09.2017, 04:56

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von Bockwurst19 » 28.10.2017, 09:41

Wollte mal fragen ob mir einer weiterhelfen kann.
Habe bei HM zwei programme am laufen.
Wollte sie jetzt bei IoBroker diese zwei programme hinzufügen .
Weiss aber nicht wo sie bei Cloud.o zu finden sind.

MFG

Benutzeravatar
Black
Beiträge: 5469
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: Vorgehensweise Migration CCU2 --> IObroker

Beitrag von Black » 28.10.2017, 10:09

die cloud installation von bluefox habe ich bei mir nicht laufen. (vpn zugang)

aber deine ccu programme findest du im entsprechenden rega.x adapter wieder. sortiert sind die nach IseID, aber mit angezeigtem Namen. Wenn dort aufklickst, findest die beiden States Active und ProgramExecute.
Mit Active kannsz das Progg auf der CCU Aktiv / Inaktiv setzen,
mit ProgramExecute kannste das starten von IOBroker aus

gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

Zurück zu „Sonstige Steuerungen und Visualisierungen“