[Gelöscht] Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

chka
Beiträge: 2484
Registriert: 13.02.2012, 20:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 302 Mal
Danksagung erhalten: 116 Mal

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von chka » 24.12.2020, 18:07

Das stimmt, nur da legt man keine ccu aufm bauch
RaspberryMatic - CuL 868mHz- CuxDemon - PioTek Tracker - Velux mit KLF200 und Somfy Anbindung- io.Broker auf Proxmox NUC6I3SYH i3-6100U RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von NickHM » 24.12.2020, 20:52

Frohes Fest

ich benutze Scripte und würde gern auf diese verzichten, weil ich bei den meisten nicht mal weiss, was die einzelnen Zeilen machen. Nur das Ergebnis stimmt.
Ausserdem setze ich eine Zusatzsoftware ein, bei der ich sehr genau weiss, was ich da programmiere, die aber nach jeder CodeAnpassung neu compiliert werden muss. Auch darauf würde ich aus heutiger Sicht gern verzichten.

Warum kann ich aber nicht allein auf die WebUi setzen? Weil die WebUI nicht rechnen und vergleichen kann. Weil ich nicht auf einfache Weise Wenn/Dann/Sonst verschachteln kann. Weil ich nicht aus einem Programm in eine vielfach benutzte Sub Funktion wechseln kann um dann mit dem Ergebnis zurück zu kehren. Weil ...
Die Zusatzsoftware auf der CCU kann das alles und den compilierten Code führt die CCU aus. Also könnte die Hardware das auch mit der WEbUi. Nur leider lässt sie den User das nicht programmieren.

Verzicht auf Script und Zusatzsoftware, gerne. Wenn die WebUi alternative Möglichkeiten bieten würde.

g55
Beiträge: 236
Registriert: 02.10.2018, 19:24
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 59 Mal
Danksagung erhalten: 11 Mal

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von g55 » 24.12.2020, 22:18

Hallo Leute :)
erstmal wünsche ich Euch allen ein frohes, gesegnetes und hoffentlich ruhiges Weihnachten :D

zu den Scripten ... ich bin auch erst seit ca. 2 Jahren mit der Homematic (IP) unterwegs. Ich habe immer wieder die gleiche Erfahrung gemacht :
  • ok, erst mal mit Direktverknüpfungen versuchen, den "Use Case" einzubauen ...
  • och nee, is noch ne Zusatzbedingung erforderlich ... geht nicht mit DV :cry: ... also doch ein CCU-Programm ...
  • uih, doch so viele, andere Randbedingungen ... ein/zwei/drei ... Programme für jedes Rollo, jeden Schalter, jeden Raum, jede Heizung :roll:
  • jep, und schon bin ich wieder bei den Skripten, da ist viel mehr möglich, was ich grad eben so haben will 8)
  • also entprechende Trigger im Programm definieren, per skript ($SRC$) auswerten und schon spart ein skript ca. 10 Programme ... :wink:
Also ich bin auch bereits ein Skript-Fan. Evtl., weil meine Anforderungen / Use Cases doch etwas komplexer sind und ich mir nicht den "Wolf" tippern will mit zig Programmen.

Ich möchte nicht auf die Skripte verzichten ... wer's nicht mag, kann mMn. gerne andere Module verwenden, da bieten sich ja IOBroker, OpenHAB, RedMatic geradezu an ... hab ich bereits ansatzweise getestet ... is (noch) nix für mich, solange die HM-Skripte funktionieren. 8)

CU + genießt die nächsten Tage
VG
Proxmox-MiniServer (J4125, 12GB RAM, nur SSDs, Proxmox 7.4-3), RM v3.69.7.20230506, abgesetztes, altes Funkmodul HM-MOD-RPI-PCB am RB-RF-ETH, ca. 5 HM- und 107 HMIP-Geräte, Addons : CUxD v2.10.1, eMail v1.7.6, XML-API v1.22, JB-HB v6.0, ProgrammeDrucken v2.6, CCU-Historian v3.3.1

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

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von Black » 25.12.2020, 09:17

es ist halt immer das abwägen, wie lässt sich eine Anforderung mit den gegebenen Mitteln (DV, WebUI, HM-Script, TCL, (redmatik), Middlewares) am effektivsten lösen.

Als nicht Effektiv zähle ich, wenn ich 10 WebUi programme mit einer höllisch Wenn Logig brauche, wenn ich das problem auch mit einem einzigen Programm, der Benutzung von $scr$ bzw $this$ und mit einen Script 20 Zeiler lösen kann.

Umgekert ist ein Script, um 2 verschiedene Werte von a nach b bzw von c nach d zu kopieren, genauso Fehl am Platz.

Auch die Unsitte, Scripte menütlich zu triggern, um irgendwas abzufragen, wenn man auch triggerbedingungen setzen kann, auch nicht stimmig

Und dann gibts auch noch die Scripte, die eigentlich von der Zeit überholt wurden. Das Heizungsscript z.b. In den heutigen Geräten durch die Wochenprogramme abbildbar, Sonderfälle durch gezieltes, getriggertes temporäre Umschreiben von Mastersets.
Auch so manches megaScript zähle ich dazu. Ich persönlich sehe es so, das eine CCU vllt wissen muss, ist heute NormalTag oder FreierTag und ist morgen normaltag oder FreierTag. Meine CCU muss nicht wissen, wie ein feiertag heisst, wann der nächste wäre oder ob in einem anderen Land ostern auf den 24.12 fällt. kann man machen, klar, ist eine nette programmiertechnische Fleissaufgabe... aber auf ner CCU ? Stellt die CCU meine Mülltonnen raus ? haben meine Mülltonenn ein Blinklicht, was die CCU einschaltet ? Nein. Also braucht meine CCU keinen Müllkalender verwalten.
Der geamte ferien Feiertags, Müll und sontige festtermie Kalender inkl der html Aufbereitung fürs Panal und der DC schonenen Darstellung auf dem EP Display für den Müll macht ein kleines Javascript in meiner Middleware, die Ergebnisse bekommt die CCU in 3 Sysvars geschrieben. fertig.

Benzinpreise das selbe. Kann meine CCU Tanken ? nein. also braucht die sich auch nicht darum zu kümmern.

Zu meiner Zeit an der Uni hatten wir einen Dozenten, dessen Lieblingssatz war: "Die Genialität einer Konstruktion erkennt man an ihrer Einfachheit, kompliziert kann jeder Deppes". Den Satz kann man eigentlich nicht oft genug wiederholen.

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

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von jp112sdl » 25.12.2020, 10:25

Black hat geschrieben:
25.12.2020, 09:17
haben meine Mülltonenn ein Blinklicht, was die CCU einschaltet ? Nein. Also braucht meine CCU keinen Müllkalender verwalten.
deine nicht.
Manch einer *hust* überwacht vielleicht, ob die Tonne um 20 Uhr immer noch an ihrem Stellplatz steht und spielt über den MP3 Gong einen Hinweis ab, dass die Tonne nun endlich raus muss.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

cmjay
Beiträge: 2393
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 251 Mal
Danksagung erhalten: 352 Mal

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von cmjay » 25.12.2020, 10:28

Manch einer *hust* überwacht vielleicht, ob die Tonne um 20 Uhr immer noch an ihrem Stellplatz steht und spielt über den MP3 Gong einen Hinweis ab, dass die Tonne nun endlich raus muss.
Man sollte seiner Frau niemals solche Instrumente der Knechtung an die Hand geben. :mrgreen:
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Xel66
Beiträge: 14170
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von Xel66 » 25.12.2020, 11:00

Bis auf das mit dem Mülltermin kann ich unterschreiben. Ich habe für den Mülltermin eine Anwendung. Wenn ich morgens die Treppe in den Wohnbereich runterkomme, dann wird mir die rauszustellende Mülltonne angesagt (was ich dann beim Verlassen des Hauses mache), damit ich das nicht vergesse. Allerdings ist die CCU da nur mit drei Systemvariablen und dem Bewegungsmelder-getriggerten Ansageprogramm beteiligt. Die dazugehörigen Systemvariablen werden von extern (Tasker) aus einem Kalender gesetzt. Also ganz schwarz-weiß kann man das nicht sehen.

Eine ganz grob kalenderähnliche Funktion läuft bei mir auch, allerdings ist hierfür keinerlei manuell zu pflegende Datenhaltung für Termine oder Kalenderfunktion notwendig. Ich berechne ein Mal nachts meine aktuelle Schicht für den Tag (fester Schichtplan im 6-Wochen-Rhythmus), weil ich in Abhängigkeit von der Schicht andere Heizungs, Beleuchtungs- und Rollladenteuerungszeitprofile fahre. Da dieses einen direkten Einfluss auf die Hausautomation hat, ist eine diesbezügliche Verwaltung auf der CCU auch zielführend.

Aber Geburtstage und andere Termine braucht man m.E. tatsächlich nicht auf der CCU. Wobei man aus Feiertagen und Beleuchtungsszenarien auch einen Automationsbedarf ableiten kann. Dafür gibt es das Feiertagsscipt. Auch wenn dieses den Namen ausgeben könnte, reicht auch eine boolsche Zustandsvariable (Heizungs-, Beleuchtungs, und Rollladensteuerung). Und der CCU kann es egal sein, wie der Feiertag heißt. Hauptsache sie richtet sich in den Automatismen danach, ob Feier- oder Arbeitstag ist.
cmjay hat geschrieben:
25.12.2020, 10:28
Man sollte seiner Frau ...
Wie war das noch mal mit Emanzipation und selbst ist die Frau? :lol:

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

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

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von Black » 25.12.2020, 11:29

ganz schwarz weiss isses ja nicht, du stellst ja einen aufbereiteten status der CCU zur verfügung, den die dann benutz um einen Hinweis zu setzen. ist ja passiges Anwendungsfeld. aber das Kalendergedönse läuft ja nicht auf der CCU.

Ähnlich isses bei mir auch, aber da ist die CCU nicht mit drin.
Wenn vortag des Abholtermines und ich abends nach 9 das haus verlasse (Zuerst erkennen haustür auf, dann der BWS aussen vor der Haustür), die Gassirunde für meine 2 Wauwis und ich dann wieder Zurückkomme und in der Zeit nicht der BWM direkt an der Garage angesprochen hat , und der Status "Betreten Haus" , also BWm Haustür draussem detektiert Bewegung dann öffnung, dann quatscht mein Tablet im Flur über den FullyBrowser, gesteuert von Iobroker, und fragt mich, ob ich die passende tonne schon rausgesetzt hab.
Das läuft aber kompett auf der Middleware.

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

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

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von dtp » 25.12.2020, 11:45

Also solche Sachen wie Kalender-Abfragen mache ich über den ioBroker samt iCal-Adapter und passender Javaskripte.

In Abhängigkeit davon, ob ich z.B. in meinem Kalender Urlaub eingetragen habe oder ob ein Feiertag ist, werden so entsprechende Systemvarialben auf dern CCU gesetzt.

Hier mal ein Beispiel, für ein Skript, dass mir vier Systemvariablen auf der CCU in Abhängigkeit von den Kalendereinträgen setzt. Zudem wird auch mein Echo Show 5 Wecker aktiviert oder deaktivert.

Code: Alles auswählen

on("ical.0.data.html", function(obj){
  var content = obj.state.val;
  
  if(content.search("Feiertage\">Heute") > 0){
    setState("hm-rega.0.2200", true);
    setState("alexa2.0.Echo-Devices.G0913L059273048Q.Alarm.6f869107-8406-4962-b6ae-54fd188807cc.enabled", false);
  } 
  else{
    setState("hm-rega.0.2200", false);
    setState("alexa2.0.Echo-Devices.G0913L059273048Q.Alarm.6f869107-8406-4962-b6ae-54fd188807cc.enabled", true);
  }

  if(content.search("Ferien") > 0){
    setState("hm-rega.0.2203", true);
  } 
  else{
    setState("hm-rega.0.2203", false);
   }  

  if(content.search("Feiertage\">Morgen") > 0){
    setState("hm-rega.0.2201", true);
  } 
  else(setState("hm-rega.0.2201", false))
});

on("ical.1.data.html", function(obj){
  var content = obj.state.val;
  log(content);
  
  if(content.search("rlaub") > 0){
    setState("hm-rega.0.2202", true);
    setState("alexa2.0.Echo-Devices.G0913L059273048Q.Alarm.6f869107-8406-4962-b6ae-54fd188807cc.enabled", false);
  } 
  else{
    setState("hm-rega.0.2202", false);
    setState("alexa2.0.Echo-Devices.G0913L059273048Q.Alarm.6f869107-8406-4962-b6ae-54fd188807cc.enabled", true);
  }
});
Man muss dafür also nichts extra auf der CCU laufen lassen.
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.

Benutzeravatar
deimos
Beiträge: 5399
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 958 Mal
Kontaktdaten:

Re: Guter Rat: Skripte verwenden nur im Ausnahmefall!!!

Beitrag von deimos » 25.12.2020, 11:46

Hi,

ich denke, es ist schwierig komplett ohne Scripting auszukommen um wirklich Automatisierung zu erreichen. Die Frage ist aber, wo man das Scripting ausführt. Ich habe für mich entschieden, dass in der eigentlichen CCU keinerlei Logik abgesehen von den Direktverknüpfungen habe. Daneben habe ich dann openHab laufen und dort einiges an Scripting. Ich achte aber darauf, dass "kritische" Dinge immer auch über eine Direktverknüpfung möglich sein müssen (notfalls über eine Fernbedienung in der Schublade). Und man muss sagen, dass openHab beim Scripting ein ganz anderes Level hat, was Möglichkeiten, Stabilität und auch Verständlichkeit hat.

Viele Grüße
Alex

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“