Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

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

Moderator: Co-Administratoren

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 09.04.2021, 21:21

Hütte hat geschrieben:
04.04.2021, 23:02
Hallo Nils,

...

Und dann habe ich nun auch eine Frage an dich. Welche Zähler (sowohl als Hauptzähler als auch für das Gartenwasser) genau sind bei dir im Einsatz? Und welche Sensoren benutzt du dafür? Denn diese beiden Zähler kann ich bei mir aktuell noch nicht auswerten. Habe bisher noch keine passenden Sensoren dafür gefunden. Und wenn es die gibt, dann sollten diese Sensoren einerseits direkt mit dem HM-ES-TX-WM funktionieren und andererseits auch keinen "Bastelaufwand" benötigen. Für "Bastelaufwand" habe ich im Moment einfach keinen Nerv mehr übrig.

Gruß, Hütte
Hallo Hütte,

ich habe folgende Kombination an Zähler und Sensor und folgendes grundlegendes Vorgehen (etwas basteln, aber sehr wenig [2 x Kabel an Pin löten]):

Ich benutze den ELV Homematic Zählersensor Gas ES-Gas. Wenn man den aufmacht, dann hat man das Kabel mit Platine und das Reed Element ist per Lüsterklemmen an zwei Pins angeschraubt. Das habe ich entfernt und dann die entsprechenden Kabel der Sensoren für den Wasserzähler angelötet (vorher richtige Polung beachten/ausprobieren). Der ELV Zählersensor passt ja direkt an die ELV Sendeeinheit HM-ES-TX-WM. Einstellung der Sendeeinheit als Gaszähler. Ich habe das so ausgeführt, dass ich das Kabel des Wassersensors in das Gehäuse des ELV Zählersensors eingeführt habe, so dass man es wieder verschrauben kann.

Meine Kobination Wasserzähler und Wassersensoren ist:

Hausanschluss: Piperberg Einstrahl Wasserzähler ETK / ETW mit einem Modularis - Modul Typ OIR - 3
Gartenleitung: AllMess Aquadis+ mit Itron Cyble Sensor V2 (K1) mit zwei Drähten (gibt es auch mit 5)

Hat alles problemlos funktioniert und die Sensoren haben beide eine Auflösung von 1l / imp.

Falls Du mehr Informationen haben möchtest, dann einfach eine PM schicken.

Gruß

Michael

michael24179
Beiträge: 28
Registriert: 13.09.2017, 14:06
Hat sich bedankt: 1 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von michael24179 » 17.04.2021, 08:44

Moin Ich habe dieses Script schon ein paar Tage am laufen, doch die auswertung passt bei mir überhaut nicht (siehe Bild)

Ich habe noch nicht mein Zähler PIN um den momentanen Verbrauch abzufragen, ich kann nur den Zählerstand auslesen. Könnte dies das Problem sein ?

Bild

Wie auf dem Bild zuerkennen ist, sind die Werte für Gestern, Woche usw. falsch bzw. deutlich zu wenig.

Das Programm schaut so aus

Bild

Dies ist mein Script

Code: Alles auswählen

! Universelle Zaehlerstandberechnung fuer HM-ES-TX-WM
!
! Copyright (c) 2016-2018 Jens Maus <mail@jens-maus.de>
! Adaptiert Michael Hansen, 01/2021, V1.0; neue Kommentare sind mit ! * gekennzeichnet
! * V1.1 - Abfrage eingefügt, ob sich das Inkrement geändert hat. Nur dann wird gerechnet
! * Fehler in der Berechnung des aktuellen Verbrauchs beseitigt
! * V1.2 - Änderung, dass in den CCU internen Energiezähler der Verbrauch seit der letzten
! * Ablesung geschrieben wird (wie beim Originalskript von Jens)#
! * V1.3 - Zurücksetzen des täglichen Wasserverbrauchs in l ist ergänzt

! Version 1.4 (01.01.2018)

! Nun schauen wir wer uns aufgerufen hat (Device-Channel oder Timer) und welches Device
! es genau war (Nutzung der $src$ Variable) und danach entscheiden wir was wir
! zu tun haben.
object counter = dom.GetObject("$src$");
if(counter)
{
  object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES);

  ! Wenn TypeName vom Typ HSSDP ist dann wurde das Program durch ein Event
  ! eines Devices erzeugt, ansonsten durch ein CALENDARDP welches der
  ! Ausfuehrung durch das Zeitmodul entspricht
  if(counter.TypeName() == "HSSDP")
  {
    ! Nun holen wir unmittelbar am anfang alle counter relevanten Daten ab
    ! und speichern sie fuer spaeter zwischen und berechnen auch gleich
    ! noch differenzwerte
    integer diffTime = counter.Timestamp().ToInteger() - counter.LastTimestamp().ToInteger();
    real curValue = counter.Value();
    real lastValue = counter.LastValue();
    real vVeraenderung_Zaehlerstand = ( curValue - lastValue );

    ! * Wir prüfen, ob es überhaupt einen Energieverbrauch gegeben hat und nur dann geht es in die
    ! * Berechnungen
    if (vVeraenderung_Zaehlerstand <> 0)
    {
      ! Nun extrahieren wir den Zaehlertyp (Gas, Wasser, Strom) -> hier muss Garten erweitert werden
      ! aus dem Namen des Channel. Ein Device muss also immer mit "XXXXX-Gas"
      ! bzw. "XXXXXX-Wasser", etc. enden.
      object channel = dom.GetObject(counter.Channel());
      string type = channel.Name().StrValueByIndex("-",1);
    
      ! Nun holen wir alle notwendigen Systemvariablen zum Lesen und Speichern
      ! unserer verschiedenen Zaehlerwerte
      object oAktueller_Zaehlerstand = sysvar.Get(type # " aktueller Zaehlerstand");
      ! * oZaehlerstand_Messgeraet_Log benötigt man nur für die Inkrementberechnung mit
      ! * interner Variable
      object oZaehlerstand_Messgeraet_Log = sysvar.Get(type # " Zaehlerstand Messgeraet Log"); 
      object oVerbrauch_Aktuell = sysvar.Get(type # " Verbrauch aktuell");
      object oVerbrauch_Ablesung = sysvar.Get(type # " Verbrauch Ablesung");
      object oLetzte_Ablesung = sysvar.Get(type # " Zaehlerstand letzte Ablesung");
      object oZaehlerstand_gestern = sysvar.Get(type # " Zaehlerstand gestern");
      object oVerbrauch_heute = sysvar.Get(type # " Verbrauch heute");
      object oZaehlerstand_letzte_Woche = sysvar.Get(type # " Zaehlerstand letzte Woche");
      object oVerbrauch_Woche = sysvar.Get(type # " Verbrauch Woche");
      object oZaehlerstand_letzter_Monat = sysvar.Get(type # " Zaehlerstand letzter Monat");
      object oVerbrauch_Monat = sysvar.Get(type # " Verbrauch Monat");
      object oZaehlerstand_letztes_Jahr = sysvar.Get(type # " Zaehlerstand letztes Jahr");
      object oVerbrauch_Jahr = sysvar.Get(type # " Verbrauch Jahr");
      ! * vUmrechnungsfaktor wird später nur geändert, wenn es der Stromzähler war (Wh vs. kWh)
      real vUmrechnungsfaktor = 1.0;
      ! * vFaktor_l Für die Umrechnung von m3 in l für den Tagesverbrauch Wasser.
      ! * Falls Gas oder Strom, dann wird der Wert auf 1 gesetzt
      real vFaktor_l = 1000.0;

      ! * Wenn der Gassensor aufgerufen hat, dann müssen wir die die Variable "Gas Verbrauch Jahr kWh"
      ! * für Gas laden
      if ( type == ( "Gas" ) )
      {
        object oVerbrauch_Jahr_kWh = sysvar.Get(type # " Verbrauch Jahr kWh"); 
        ! * Damit wir die kWh berechnen können, werden die Faktoren für die Umrechnung bei Gas
        ! * m3 -> kWh benötigt
        real vZustandszahl = 0.9639;
        real vFaktor = 10.039;
      }

      ! * Wenn der Wasser- oder Gartensensor aufgerufen hat, dann müssen wir die entsprechende
      ! * Variable für "XXX Verbrauch heute l" laden
      if ( (type == "Wasser") || (type == "Garten"))
      {
        object oVerbrauch_heute_l = sysvar.Get(type # " Verbrauch heute l"); 
      }
      
      ! Jetzt machen wir die Inkrementberechnung
      ! * Wenn die Variable "XXX Zaehlerstand Messgeraet Log" noch nicht gesetzt wurde (= 0), dann
      ! * wird der letzte Zaehlerstand des Messgerätes verwendet

      if ( oZaehlerstand_Messgeraet_Log.Value() == 0 )
      {
        oZaehlerstand_Messgeraet_Log.State(lastValue);
      }
       real vInkrement_Geraetezaehler = ( curValue - oZaehlerstand_Messgeraet_Log.Value() );
      
      ! * Der Faktor wird für den aktuellen Verbrauch benötigt, da der bei Wasser nur als Angabe in
      ! * l Sinn macht
      if ( (type == "Wasser") || (type == "Garten"))
      {
        vFaktor_l = 1000.0;
      }
      else
      {
        vFaktor_l = 1.0;
      }
    
      ! Jetzt wird das Inkrement zum letzten Zaehlerstand berechnet
      ! * Dabei muss der Umrechnungsfaktor für die Wasserzaehlung identifiziert und gesetzt werden
      ! * Strom und Gas benötigen keine Umrechnung (Wasser = l; Strom = kWh; Gas = m3).
      ! * vUmrechnungsfaktor wird für den Fall des Batteriewechsels bzw. Zählerüberlaufs benötigt
      ! * (auch noch später)
      if ( type == "Strom"  )
      {
        vUmrechnungsfaktor = 1000.0;
        vInkrement_Geraetezaehler = vInkrement_Geraetezaehler / vUmrechnungsfaktor;
      }
 
      ! Aktuellen Verbrauch berechnen
      if(diffTime > 0)
      {
        oVerbrauch_Aktuell.State(3600.0 * vFaktor_l * vInkrement_Geraetezaehler * vUmrechnungsfaktor / diffTime);
      }
  
      ! Aktuellen Zaehlerstand berechnen
      if (vInkrement_Geraetezaehler < 0)
      {
        ! * Wenn Batteriewechsel, dann direkt den Zaehlerstand des Gerätes addieren
        oAktueller_Zaehlerstand.State( (oAktueller_Zaehlerstand.Value() + curValue / vUmrechnungsfaktor));
      }
      else
      {
        ! * Wenn kein Batteriewechsel stattgefunden hat, dann das Inkrement addieren
       oAktueller_Zaehlerstand.State( (oAktueller_Zaehlerstand.Value() + vInkrement_Geraetezaehler ));
      }
  
      ! Nun alle Systemvariablen die fuer die Berechnung/Darstellung
      ! des Verbrauches da sind neu berechnen.
      oVerbrauch_heute.State( ( oAktueller_Zaehlerstand.Value() - oZaehlerstand_gestern.Value()) );  
      oVerbrauch_Woche.State( ( oAktueller_Zaehlerstand.Value() - oZaehlerstand_letzte_Woche.Value()) );
      oVerbrauch_Monat.State( ( oAktueller_Zaehlerstand.Value() - oZaehlerstand_letzter_Monat.Value()) );
      oVerbrauch_Jahr.State( ( oAktueller_Zaehlerstand.Value() - oZaehlerstand_letztes_Jahr.Value()) );
      oVerbrauch_Ablesung.State( ( oAktueller_Zaehlerstand.Value() - oLetzte_Ablesung.Value()) );
 
      ! * Wenn es der Wasser- oder Gartewasserzähler ist, dann berechnen wir noch den Tagesverbrauch
      ! * in l
      if (( type == "Wasser") || ( type == "Garten"))
      {
        oVerbrauch_heute_l.State(oVerbrauch_heute.Value() * vFaktor_l);
      }
    
      ! * Wenn es der Gaszähler ist, dann berechnen wir den Jahresverbrauch für Gas in kWh
      if (type == "Gas" )
      {
        oVerbrauch_Jahr_kWh.State( (oVerbrauch_Jahr.Value() * vZustandszahl * vFaktor) );
      }
    
      ! * Jetzt schreiben wir den aktuellen Zaehlerstand des Sensors in unsere Log Variable
      oZaehlerstand_Messgeraet_Log.State(curValue);
    
    
      ! Wir aktualisieren auch noch den CCU internen Energiezaehler mit
      ! dem Wert der letzten Ablesung
      if(counter.HssType() != "GAS_ENERGY_COUNTER")
      {
        object oSysVarEnergyCounter = sysvar.Get("svEnergyCounter_" # channel.ID() # "_" # channel.Address());
        if(oSysVarEnergyCounter)
        {
          ! * Aktueller Zaehlerstand ist kWh. Die Variable erwartet Wh und rechnet dies dann ggf. in der Anzeige
          ! * selbst in kWh um
          oSysVarEnergyCounter.State(oVerbrauch_Ablesung.Value() * 1000 ); 
        }
      }
      else
      {
        object oSysVarEnergyCounter = sysvar.Get("svEnergyCounterGas_" # channel.ID() # "_" # channel.Address());
        if(oSysVarEnergyCounter)
        {
          oSysVarEnergyCounter.State(oVerbrauch_Ablesung.Value() );
        }
      }

    
      ! Die aktuelle Zeit in eine separate Systemvariable schreiben
      ! damit man direkt sehen kann wann die Zaehelrstaende das letzte
      ! mal aktualisiert wurden.
      sysvar.Get(type # " Aktualisierung").State(system.Date("%F %X"));
    }
  }
  else
  {
    ! Tageszaehleraktualisierung fuer alle Hausanschluss-Zaehler
    ! Hier wird mittels eines Timers der taeglich immer genau um 00:01
    ! dieses Programm ausfuehrt die Systemvariablen aktualisiert die
    ! die Tages/Wochen/Monat/Jahreswerte beinhalten.

    ! Nur weitermachen wenn es wirklich Mitternacht ist
    if(system.Date("%H:%M") == "00:01")
    {
      string a="Gas,Strom,Wasser,Garten";
      string b;
      object oAktueller_Zaehlerstand;
      object oZaehlerstand_letzte_Woche;
      object oVerbrauch_Woche;
      object oVerbrauch_letzte_Woche;
      object oZaehlerstand_letzter_Monat;
      object oVerbrauch_Monat;
      object oVerbrauch_letzter_Monat;
      object oZaehlerstand_letztes_Jahr;
      object oVerbrauch_Jahr;
      object oVerbrauch_letztes_Jahr;
      object oZaehlerstand_gestern;
      object oVerbrauch_heute;
      object oVerbrauch_gestern;

      ! Nun ueber alle Hauszaehler iterieren
      foreach(b, a.Split(","))
      {
        ! momentaner Zaehlerstand
        oAktueller_Zaehlerstand = sysvar.Get(b # " aktueller Zaehlerstand");
        if(oAktueller_Zaehlerstand)
        {  
          ! Nach Wochenanfang pruefen
          if(system.Date("%a") == "Mon")
          {
            oZaehlerstand_letzte_Woche = sysvar.Get(b # " Zaehlerstand letzte Woche");
            oVerbrauch_Woche = sysvar.Get(b # " Verbrauch Woche");
            oVerbrauch_letzte_Woche = sysvar.Get(b # " Verbrauch letzte Woche");
            
            ! Verbrauch der letzten Woche speichern
            oVerbrauch_letzte_Woche.State( oVerbrauch_Woche.Value() );
            
            ! Referenzwert der Woche speichern
            oZaehlerstand_letzte_Woche.State( oAktueller_Zaehlerstand.Value() );
  
            ! Wochenverbrauch auf 0 setzen
            oVerbrauch_Woche.State(0);   
          }

          ! Nach Monatsanfang pruefen
          if(system.Date("%d") == "01")
          {
            oZaehlerstand_letzter_Monat = sysvar.Get(b # " Zaehlerstand letzter Monat");
            oVerbrauch_Monat = sysvar.Get(b # " Verbrauch Monat");
            oVerbrauch_letzter_Monat = sysvar.Get(b # " Verbrauch letzter Monat");
  
            ! Verbrauch des letzten Monats speichern
            oVerbrauch_letzter_Monat.State( oVerbrauch_Monat.Value() );
  
            ! Referenzwert des Monats speichern
            oZaehlerstand_letzter_Monat.State( oAktueller_Zaehlerstand.Value() );
      
            ! Monatsverbrauch auf 0 setzen
            oVerbrauch_Monat.State(0);       
      
            ! Nach Jahresanfang pruefen
            if(system.Date("%m") == "01")
            {
              oZaehlerstand_letztes_Jahr = sysvar.Get(b # " Zaehlerstand letztes Jahr");
              oVerbrauch_Jahr = sysvar.Get(b # " Verbrauch Jahr");
              oVerbrauch_letztes_Jahr = sysvar.Get(b # " Verbrauch letztes Jahr");
  
              ! Verbrauch des letzten Kalenderjahr speichern
              oVerbrauch_letztes_Jahr.State( oVerbrauch_Jahr.Value() );
  
              ! Referenzwert des Kalenderjahr speichern
              oZaehlerstand_letztes_Jahr.State( oAktueller_Zaehlerstand.Value() );
        
              ! Jahresverbrauch auf 0 setzen
              oVerbrauch_Jahr.State(0);       
            }
          }

          ! aktueller Tagesverbrauch speichern
          oZaehlerstand_gestern = sysvar.Get(b # " Zaehlerstand gestern");
          oVerbrauch_heute = sysvar.Get(b # " Verbrauch heute");
          oVerbrauch_gestern = sysvar.Get(b # " Verbrauch gestern");
          oVerbrauch_heute_l = sysvar.Get(b # " Verbrauch heute l");
          
          
          ! Verbrauch gestern speichern
          oVerbrauch_gestern.State(oVerbrauch_heute.Value());
  
          ! Referenzwert des Tages speichern
          oZaehlerstand_gestern.State(oAktueller_Zaehlerstand.Value());

          ! Tagesverbrauch auf 0 setzen
          oVerbrauch_heute.State(0);
          
          if (( b == "Wasser") || ( b == "Garten"))
          {
            oVerbrauch_heute_l.State(0);
          }
          
        }
      }
    }
  }
}
Mein Zähler ist ein ISKRA MT175.

Habe ich irgendetwas übersehen ?

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 17.04.2021, 09:35

Hallo,

bitte an folgender Stelle im Skript wie folgt anpassen:

Code: Alles auswählen

! Nur weitermachen wenn es wirklich Mitternacht ist
if(system.Date("%H:%M") == "00:01")
{
  string a="Gas,Strom,Wasser,Garten";
in

Code: Alles auswählen

! Nur weitermachen wenn es wirklich Mitternacht ist
if(system.Date("%H:%M") == "00:01")
{
  string a="Strom";
Man sieht, dass die Aktualisierung läuft und gezählt wird. Allerdings werden die Tageswerte nachts nicht übertragen. Da Du nur einen Stromähler hast gibt es die anderen Variablen nicht und das Skript bricht dann ab, wenn es diese nicht findet.

Gruß

Michael

Benutzeravatar
NilsG
Beiträge: 1685
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 381 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 23.04.2021, 20:18

Xel66 hat geschrieben:
06.04.2021, 14:55
Mit "Script testen" kann man es schon laufen lassen, wenn man das Feld für $src$ mit der korrekten iseID füllt. Diese bekommt man z.B. über devconfig raus. Aber auf einen falschen geschriebenen Namen irgendeiner Variablen (mein Tip) wurde nun ja schon oft genug hingewiesen.

Gruß Xel66
Moin!
Ok, ich mache mich da nochmal ran :?
Den Wert habe ich nun ermittelt (=>7653); wo genau setzt ich den hier ein:
Bei "Counter"? Überall im Script bei "Counter"?

Code: Alles auswählen

object counter = dom.GetObject("$src$");
if(counter)
Oder was meinst du mit "unter dem Script"?!

DANKE!
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

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

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Xel66 » 23.04.2021, 22:40

NilsG hat geschrieben:
23.04.2021, 20:18
Oder was meinst du mit "unter dem Script"?!
Schon mal in einem Programm mit einem Script auf das Script geklickt? Dort geht ein Fenster auf und dort kann man drei Parameter füllen. Einer davon ist $src$.

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
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Baxxy » 23.04.2021, 23:48

Xel66 hat geschrieben:
23.04.2021, 22:40
Dort geht ein Fenster auf und dort kann man drei Parameter füllen. Einer davon ist $src$.
Gibt es das auf der CCUx überhaupt? Und wenn ja, ist es dort funktional?
Gibt es die drei Eingabefelder ($val$ | $this$ | $src$) auf der CCUx überhaupt? Und wenn ja, sind sie dort funktional?
Bei RM hat man zwar die Möglichkeit die ID's dort einzutragen, funktional ist es aber nicht. Siehe #764.

Grüße
Baxxy
Zuletzt geändert von Baxxy am 24.04.2021, 09:47, insgesamt 1-mal geändert.

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

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Xel66 » 24.04.2021, 00:47

Es ist selbst auf meiner Test-CCU2 vorhanden (extra vor meinem vorherigen Post nachgesehen). Aber da kann man nur eine Fehlerprüfung machen. Ich habe das in grauer Vergangenheit auf meiner RM schon mal genutzt. Seit ich aber mit dem SDV meine Scripte schreibe und teste, nutze ich das nicht mehr. Ich war eigentlich der Meinung, dass die Felder auch im Script-Testen vorhanden sind. Sind sie aber nicht.

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
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Baxxy » 24.04.2021, 09:48

Xel66 hat geschrieben:
24.04.2021, 00:47
Es ist selbst auf meiner Test-CCU2 vorhanden
Klar. Meine Frage war leider unpräzise. Habe sie nochmal präzisiert.

Grüße
Baxxy

Benutzeravatar
NilsG
Beiträge: 1685
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 381 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 24.04.2021, 10:05

Xel66 hat geschrieben:
23.04.2021, 22:40
NilsG hat geschrieben:
23.04.2021, 20:18
Oder was meinst du mit "unter dem Script"?!
Schon mal in einem Programm mit einem Script auf das Script geklickt? Dort geht ein Fenster auf und dort kann man drei Parameter füllen. Einer davon ist $src$.

Gruß Xel66
Moin!

Ah, ok. Ja, das kenne ich.
Ohne den Wert der $src$ hatte ich das schon x-mal angeklickt: "Keine Fehler"
Mit dem eingegebenen Wert der $src$: "Keine Fehler"

:| :| :|
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

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

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Xel66 » 24.04.2021, 10:14

Baxxy hat geschrieben:
24.04.2021, 09:48
Habe sie nochmal präzisiert.
Und ich dachte, ich habe sie mit ...
Xel66 hat geschrieben:
24.04.2021, 00:47
... Aber da kann man nur eine Fehlerprüfung machen.
...Ich war eigentlich der Meinung, dass die Felder auch im Script-Testen vorhanden sind. Sind sie aber nicht.
... beantwortet. Nein, leider funktioniert der Weg so auf einer Standard-CCU nicht (mehr). Irgendwie auch sinnfrei, die Felder im Scripteditor zu haben, in dem man nur eine Syntax-Prüfung machen kann und in einem Fenster, in dem man das Script testen kann (unter gleichem bezeichnenden Namen), sind sie nicht vorhanden. Ich bin der Meinung, dass das mal anders war.
EDIT: Muss da wohl doch einer Sinnestäuschung oder falschen Erinnerung aufgesessen sein. In meiner Raspberrymatic gibt es im Editor diese Felder. Der hat ja auch einen gegenüber der Standardfirmware erweiterten Scripteditor.

Egal. Zum Testen kann man auch im Script in der Zeile object counter = dom.GetObject("$src$"); das "$src$" temporär gegen die iseID des Zählers austauschen und erhält den gleichen Effekt. Schließlich ermittelt diese Zeile nur den Trigger des Programms, welcher ja der Zählersensor sein sollte.

Gruß Xel66
Zuletzt geändert von Xel66 am 24.04.2021, 10:34, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
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 Tipps & Tricks - keine Fragen!“