Script: Batteriespannungen in Werteliste

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
klana
Beiträge: 1099
Registriert: 08.02.2015, 08:37
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 66 Mal
Danksagung erhalten: 27 Mal

Re: Script: Batteriespannungen in Werteliste

Beitrag von klana » 17.11.2017, 18:38

Hi,

habe es für mich etwas angepasst und auch was dabei gelernt ;-)

Code: Alles auswählen

! Batteriespannungen oder LOWBAT auslesen V 0.1 vom 17.11.2017 KN
! ACHTUNG! Die Systemvariable NICHT auf der Startseite der WebUI anzeigen lassen
! da Steuerzeichen für den Zeilenvorschub enthalten sind!
! Anzupassen sind:
!  - das Gewerk BatDev (hier Batteriebetrieben genannt)
!  - Die Systemvariable fuer die Ausgabe als string anlegen
!  - fuer Debuggingzwecke ist die Variable debug auf true zu setzen

var BatDev = dom.GetObject("Batteriebetrieben"); 
boolean debug = false;
string SVVariable_Spannungen = "Batteriespannungen";

var item; 
string itemID; 
string text = ""; 
string channel_name; 
string batvalue; 
text = "Batteriespannungen vom "#system.Date("%d.%m.%Y %H:%M:%S") #"\n";

if(debug) {WriteLine(BatDev.EnumUsedIDs());}

! Durch alle angemeldeten Geräte laufen
foreach(itemID, BatDev.EnumUsedIDs())
{
  !Gerätedetails & Schnittstelle holen
  item = dom.GetObject(itemID);
  channel_name = dom.GetObject(item.DPByHssDP("BATTERY_STATE"));
  
  if(channel_name)
  {
    batvalue = dom.GetObject(channel_name).Value();
    ! Text zusammensetzen
    text = text#"Spannung an "#item.Name()#": "#batvalue.ToString(1)#" V\n";
    if (debug) {WriteLine(text);}
  }
  else
  {
    channel_name = dom.GetObject(item.DPByHssDP("LOWBAT"));
    if(channel_name)
    {
      batvalue = dom.GetObject(channel_name).Value();
      if (batvalue == false) {batvalue = "OK";} else {batvalue = "BATTERIEWECHSEL STEHT AN!";}
      if (debug) {WriteLine(item.Name() #" : " #batvalue.ToString());}
      ! Text zusammensetzen
      text = text#"Spannung an "#item.Name()#": "#batvalue.ToString(1)#"\n";
    }
  }
}

if (debug) {WriteLine(text);}

! Ausgabe in Systemvariable
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(SVVariable_Spannungen)).State(text);

Die Ausgabe sieht in etwas so aus:

Code: Alles auswählen

Batteriespannungen vom 17.11.2017 18:32:06
Spannung an AlarmSirene:1: OK
Spannung an AlarmSirene:2: OK
Spannung an AlarmSirene:3: OK
Spannung an AlarmSirene:4: OK
Spannung an FKT_Abstell:1: OK
Spannung an FKT_Bad:1: OK
Spannung an FKT_Bar:1: OK
Spannung an FKT_Buero:1: OK
Spannung an FKT_Erker_Links:1: OK
Spannung an FKT_Erker_Mitte:1: OK
Spannung an FKT_Erker_Rechts:1: OK
Spannung an FKT_Flur:1: OK
Spannung an FKT_Freisitz_Links:1: OK
Spannung an FKT_Freisitz_Mitte:1: OK
Spannung an FKT_Freisitz_Rechts:1: OK
Spannung an FKT_Gaeste_Dach:1: OK
Spannung an FKT_Gaeste_Gross:1: OK
Spannung an FKT_Gaeste_Klein:1: OK
Spannung an FKT_Gaestebad:1: OK
Spannung an FKT_Garagen_Links:1: OK
Spannung an FKT_Garagen_Rechts:1: OK
Spannung an FKT_Haustuer:1: OK
Spannung an FKT_Heizung:1: OK
Spannung an FKT_KellerAusenTuer:1: OK
Spannung an FKT_Kueche_Links:1: OK
Spannung an FKT_Kueche_Mitte:1: OK
Spannung an FKT_Kueche_Rechts:1: OK
Spannung an FKT_Kueche_Strasse:1: OK
Spannung an FKT_Neigungssensor_Garage:1: OK
Spannung an FKT_Schlafen:1: OK
Spannung an FKT_Vorrat:1: OK
Spannung an FKT_WC:1: OK
Spannung an HKT_Bad:4: 2.6 V
Spannung an HKT_Buero_Links:4: 2.6 V
Spannung an HKT_Buero_Rechts:4: 2.5 V
Spannung an HKT_Couch:4: 2.6 V
Spannung an HKT_Erker:4: 2.6 V
Spannung an HKT_FlurEG:4: 2.5 V
Spannung an HKT_FlurUG:4: 2.6 V
Spannung an HKT_Gaeste:4: 2.6 V
Spannung an HKT_Gaestebad:4: 2.6 V
Spannung an HKT_Kueche:4: 2.6 V
Spannung an HKT_Schlafen:4: 2.6 V
Spannung an HKT_WC:4: 2.5 V
Spannung an Rauchmelder_Abstell:1: OK
Spannung an Rauchmelder_Bar:1: OK
Spannung an Rauchmelder_Buero:1: OK
Spannung an Rauchmelder_Couch:1: OK
Spannung an Rauchmelder_Erker:1: OK
Spannung an Rauchmelder_FlurEG:1: OK
Spannung an Rauchmelder_FlurOG:1: OK
Spannung an Rauchmelder_FlurUG:1: OK
Spannung an Rauchmelder_Gaeste:1: OK
Spannung an Rauchmelder_Kueche:1: OK
Spannung an Rauchmelder_Schlafen:1: OK
Spannung an Rauchmelder_Vorrat:1: OK
Spannung an Wassermelder:1: OK
Spannung an WHT_Bad:2: 2.6 V
Spannung an WHT_Buero:2: 2.6 V
Spannung an WHT_Flur:2: 2.5 V
Spannung an WHT_Gaeste:2: 2.6 V
Spannung an WHT_Gaestebad:2: 2.6 V
Spannung an WHT_Kueche:2: 2.7 V
Spannung an WHT_Schlafen:2: 2.6 V
Spannung an WHT_WC:2: 2.4 V
Spannung an WHT_Wohnen:2: 2.6 V
Gruß Klana
Es ist nett, wichtig zu sein. Aber es ist wichtiger, nett zu sein.

Thomas_2802

Re: Script: Batteriespannungen in Werteliste

Beitrag von Thomas_2802 » 10.02.2018, 12:00

Hallo zusammen

ich bin absolut neu hier...auch in der Umsetzung der Homematic-Programmierung.
Das Script gefällt mir echt sehr gut und macht genau das was ich wünsche.
nur....
wie gehe ich Schritt für Schritt sowas anzulegen ?!?:)
Wäre super wenn mir das jemand erläutern würde.

Vielen Dank vorab
Lg Tom

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

Re: Script: Batteriespannungen in Werteliste

Beitrag von alchy » 11.02.2018, 11:01

Auch bei der xten Kopie des Batlow Scriptes:
Zur ersten Funktion:
Anlegen eines Gewerkes (im Script Batteriebetrieben genannt)
Hinzufügen deiner batteriebetriebenen Sensoren usw. in dieses erstellte Gewerk.
Script per Copy & Paste DIREKT in das Fenster Skript testen kopieren.
Zeile ändern:

Code: Alles auswählen

boolean debug = true;
auf ausführen drücken.
DAS Scrip erzeugt dann zwar ScriptRuntimeError aber du erhältst die Ausgabe.

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.

Thomas_2802

Re: Script: Batteriespannungen in Werteliste

Beitrag von Thomas_2802 » 11.02.2018, 18:50

Hallo Alchy

Super, besten Dank.
Gibt es irgendwie die Möglichkeit, dieser Werte in Systemvariablen zu schreiben um sie für z.B. Visulisierungen zu nutzen?
Vielen Dank für deine Rückmeldung

Lg Tom

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

Re: Script: Batteriespannungen in Werteliste

Beitrag von alchy » 11.02.2018, 19:06

Wenn du die Systemvariable Batteriespannungen vom Typ Zeichenkette anlegen würdest, würde das Script seine Ausgabe auch darin speichern


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.

Thomas_2802

Re: Script: Batteriespannungen in Werteliste

Beitrag von Thomas_2802 » 11.02.2018, 19:10

Stimmt :)
Hätte ich genauer hingesehen wärs mir sicherlich auch aufgefallen ;)
Vielen Dank für die echt schnelle Hilfe !!

Thomas_2802

Re: Script: Batteriespannungen in Werteliste

Beitrag von Thomas_2802 » 11.02.2018, 22:20

Gibt's ne Möglichkeit dies irgendwie besser darzustellen?
Dateianhänge
Unbenannt.JPG

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

Re: Script: Batteriespannungen in Werteliste

Beitrag von alchy » 11.02.2018, 22:43

Ja, schreib eine "Bug Meldung" an EQ 3, oder pass dir die entsprechenden Dateien selber an.
Letzteres wird wohl erfolgversprechender sein, aber ich will dir die Hoffnung nicht nehmen.

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.

Thomas_2802

Re: Script: Batteriespannungen in Werteliste

Beitrag von Thomas_2802 » 11.02.2018, 22:59

Na diese Antwort hilft mir nicht wirklich weiter :(
Wenn ich gewusst hätte wie ichs anpassen muss, hätte ich kaum um Rat gefragt

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

Re: Script: Batteriespannungen in Werteliste

Beitrag von Xel66 » 12.02.2018, 08:38

Thomas_2802 hat geschrieben:Wenn ich gewusst hätte wie ichs anpassen muss...
Was Dir Alchy damit sagen wollte, dass dieses die vom Hersteller vorgesehene Darstellungweise ist, weil das, was teilweise per Scriptprogrammierung gemacht wird, so eigentlich vom Hersteller nicht vorgesehen war. Eine Änderung ist ohne tiefe Eingriffe in die schreibgeschützten Konfigurationsdateien des lokalen Webservers auf der CCU nicht möglich. An dieser Stelle sollte man wirklich wissen, was man tut. Hier sind c&p-Lösungen am Ende. Die WebUI ist keine Visualisierung sondern eine Einrichtungs- und Administrationsoberfläche. Wenn Du das "in schön" haben willst, solltes Du eine Visualisierung in Erwägung ziehen. Möglichkeiten gehen von Apps für Smartphones und Tablets bis zur reinen Visualisierungen, die als Webserver auf separater Hardware laufen.

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

Antworten

Zurück zu „HomeMatic allgemein“