OWCOUNT counted nicht mehr

Begonnen von Vorhand, 16 Mai 2014, 17:40:15

Vorheriges Thema - Nächstes Thema

Vorhand

Hallo,
seit einiger Zeit sind meine "Energie-Kuven" leer und in FileLogs sid keine Daten enthalten!?

Mein Raspi mit DS9490R# und dem alternativen DS2423 von Ralf, liefen mit OWCOUNTER die ganze Zeit hervorragend - seit geraumer Zeit ist Schluss.
Ich las über eine neue Version von OWCOUNTER, dass man das Model wg. des fehlenden Speichers angeben müsse. Das tat ich - ohne Erfolg.

Mein Log file zeigt folgendes an:
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_14.dat for reading!
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_14.dat for reading!
2014.05.16 17:14:07 1: OWCOUNT: model attribute of OWC set to DS2423eold because no memory found
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_14.dat for reading!
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_15.dat for reading!

Meine Config sieht so aus:
define OWS1 OWServer localhost:4304
define OWC OWCOUNT DS2423eold A2D988000002 300
attr OWC AFactor 0.00125
attr OWC AMode daily
attr OWC AName Strom Wohnung|energy
attr OWC AUnit kWh|kWh
attr OWC APeriod hour
attr OWC ARate Wohnung|power
attr OWC nomemory 1
attr OWC BFactor 0.00125
attr OWC BName Strom Büro|energy
attr OWC BUnit kWh|kWh
attr OWC BPeriod hour
attr OWC BRate Büro|power
attr OWC LogM FileLog_OWCm

define FileLog_OWC FileLog ./log/OWC-%m-%Y.log OWC.*kWh.*
define weblink_OWC weblink fileplot FileLog_OWC:OWC:CURRENT
attr weblink_OWC room Plots

define FileLog_OWCm FileLog ./log/OWCm-%m-%Y.log OWC*.*day.*

Hat jemand einen guten Hinweis, wie ich das Teil wieder zum Laufen kriege?
Übrigens zeigt sich der Zähler - in der sich offensichtlich automatisch generierenden OWDevice-Liste - als aktiv und gibt Werte aus.

Grüße
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

ergerd

Hallo Vorhand,

ich habe (hatte) ebenfalls das Problem, habe das auch schon mal gepostet. Ich habe allerdings "originale" DS2423.
Mittlerweile benutze ich OWCount nicht mehr, ich habe auf OWDevice umgestellt. Die Werte aus den Countern rechne ich selber um und logge über eine Dummy.

Hier meine Config:
define DS2423_404C0F000000 OWDevice 1D.404C0F000000 300
attr DS2423_404C0F000000 IODev myOWFS
attr DS2423_404C0F000000 model DS2423
attr DS2423_404C0F000000 room hidden
attr DS2423_404C0F000000 stateFormat {sprintf("%.3f",ReadingsVal("DS2423_404C0F000000","zaehler3",0)).sprintf(" %.3f",ReadingsVal("DS2423_404C0F000000","zaehler4",0))}
attr DS2423_404C0F000000 userReadings zaehler3:counters.A differential { ReadingsVal("DS2423_404C0F000000","counters.A",0)*3.6;;;; }, zaehler4:counters.B differential { ReadingsVal("DS2423_404C0F000000","counters.B",0)*3.6;;;; }

define DS2423_2BD20D000000 OWDevice 1D.2BD20D000000 300
attr DS2423_2BD20D000000 IODev myOWFS
attr DS2423_2BD20D000000 model DS2423
attr DS2423_2BD20D000000 room hidden
attr DS2423_2BD20D000000 stateFormat {sprintf("%.3f",ReadingsVal("DS2423_2BD20D000000","zaehler1",0)).sprintf(" %.3f",ReadingsVal("DS2423_2BD20D000000","zaehler2",0))}
attr DS2423_2BD20D000000 userReadings zaehler1:counters.A differential { ReadingsVal("DS2423_2BD20D000000","counters.A",0)*3.6;;;; }, zaehler2:counters.B differential { ReadingsVal("DS2423_2BD20D000000","counters.B",0)*3.6;;;; }

define myOWCount1 dummy
attr myOWCount1 room hidden
define notify_myOWCount1 notify DS2423_2BD20D000000:counters\.A.*  { \
      my $a = sprintf("%%.3f", ReadingsVal("DS2423_2BD20D000000","zaehler1",0)) ;; \
      my $b = sprintf("%%.3f",ReadingsVal("DS2423_2BD20D000000","zaehler2",0)) ;; \
      my $c = sprintf("%%.3f", ReadingsVal("DS2423_2BD20D000000","counters.A",0)/1000.0) ;; \
      my $d = sprintf("%%.3f", ReadingsVal("DS2423_2BD20D000000","counters.B",0)/1000.0) ;; \
      my $text = "Stromverbrauch1: $c kWh Leistung1: $a kWh Stromverbrauch2: $d kWh Leistung2: $b kWh" ;; \
      fhem ("set myOWCount1 $text") ;; \
     }
attr notify_myOWCount1 room hidden
define FileLog_myOWCount1 FileLog /volumeUSB1/usr/local/FHEM/var/log/FileLog_myOWCount1-%Y-%m.log myOWCount1
attr FileLog_myOWCount1 logtype text
attr FileLog_myOWCount1 room 90_logfiles

define myOWCount2 dummy
attr myOWCount2 room hidden
define notify_myOWCount2 notify DS2423_404C0F000000:counters\.A.*  { \
      my $a = sprintf("%%.3f", ReadingsVal("DS2423_404C0F000000","zaehler3",0)) ;; \
      my $b = sprintf("%%.3f",ReadingsVal("DS2423_404C0F000000","zaehler4",0)) ;; \
      my $c = sprintf("%%.3f", ReadingsVal("DS2423_404C0F000000","counters.A",0)/1000.0) ;; \
      my $d = sprintf("%%.3f", ReadingsVal("DS2423_404C0F000000","counters.B",0)/1000.0) ;; \
      my $text = "Stromverbrauch3: $c kWh Leistung3: $a kWh Stromverbrauch4: $d kWh Leistung4: $b kWh" ;; \
      fhem ("set myOWCount2 $text") ;; \
     }
attr notify_myOWCount2 room hidden
define FileLog_myOWCount2 FileLog /volumeUSB1/usr/local/FHEM/var/log/FileLog_myOWCount2-%Y-%m.log myOWCount2
attr FileLog_myOWCount2 logtype text
attr FileLog_myOWCount2 room 90_logfiles

define FileLog_myOWFS_C FileLog /volumeUSB1/usr/local/FHEM/var/log/myOWFS_C-%Y-%m.log (myOWCount1|myOWCount2).*(kWh).*
attr FileLog_myOWFS_C room 90_logfiles
define wl_FileLog_myOWFS_C_1 SVG FileLog_myOWFS_C:wl_FileLog_myOWFS_C_1:CURRENT
attr wl_FileLog_myOWFS_C_1 room 41_keller_grafik
define FileLog_myOWFS_C_M FileLog /volumeUSB1/usr/local/FHEM/var/log/myOWFS_C_M-%Y-%m.log (myOWCount1|myOWCount2):day.*
attr FileLog_myOWFS_C_M room 90_logfiles

Vielleicht kannst du das als Ideenvorlage nutzen.

Grüße
Rainer
FHEM auf RasPi 4, ZigBee, 1Wire2WLAN, DS2423, Buderus KM200, Button+, LaCrosseGateway, PCA301, ConBee III, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Vorhand

#2
Danke für deine Config - schönes Beispiel. Ich hatte auch schon daran gedacht, auf OWDevice umzustellen. Bis jetzt hat mich die Komplexität des Codes davon abgehalten.

Vielleicht kann noch jemand seine Config als Beispiel für den aktuellen OWCOUNT hier einstellen. Leider kann ich nicht so viel Zeit investieren um alles mit dem notwendigen Tiefgang zu verstehen. So schön es ist, wenn man nach Stunden oder auch Tagen eine Lösung gefunden hat - jedoch musste ich bei mir schon feststellen, dass nach ein paar Wochen alles wieder weg ist. Nach einem Update sieht man auch nicht auf Anhieb, was nicht mehr geht.

Eigentlich möchte ich auf einer Ebene bleiben, auf der man mit (mehr oder weniger kommentierten) Codebeispielen fhem anwenden kann.
Nochmal - dein Beispiel ist daher genau das Richtige.

Bitte - wer hat noch so ein schönes Code-Beispiel mit  OWCOUNT und dem alternativen DS2423?
Anmerkung: OWX kann ich nicht verwenden, weil mein 1wire-Adapter ein Original Dallas DS9490R# ist, OWX damit nicht kann, der aber mit OWServer problemlos auf meinem Raspi läuft.

Grüße
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Wzut

#3
Zitat von: Vorhand am 16 Mai 2014, 17:40:15
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_14.dat for reading!
2014.05.16 17:14:07 1: OWCOUNT_recall: Cannot open OWCOUNT_OWC_15.dat for reading!
da ist doch dein Problem , OWCOUNT legt diese beiden Dateien selbst nicht an , brauch sie aber :)
Must sie zuerst selbst erzeugen im FHEM Modul Verzeichniss (da wo auch 21_OWCOUNT.pm liegt)

Beispiel :
define Zaehler OWCOUNT DS2423emu A2D984000002 30
attr Zaehler AMode daily
attr Zaehler AName Test-Energy|energy
attr Zaehler APeriod hour
attr Zaehler ARate Test-Power|power
attr Zaehler AUnit kWh|kWh
attr Zaehler BFactor 0.001
attr Zaehler BMode daily
attr Zaehler BName DG-Energy|energy
attr Zaehler BPeriod hour
attr Zaehler BRate DG-Power|power
attr Zaehler BUnit kWh|kWh
attr Zaehler IODev OW_intern
attr Zaehler LogM OWCM.FL
attr Zaehler LogY OWCY.FL
attr Zaehler event-on-update-reading DG-Energy,DG-Power,day,month,Test*
attr Zaehler interval 30
attr Zaehler model DS2423emu
attr Zaehler nomemory 1

define OWCM.FL FileLog ./log/OWCM-%Y-%m.log Zaehler.*day.*

define OWCY.FL FileLog ./log/OWCY-%Y.log Zaehler.*month.*

define Zaehler_log FileLog ./log/Zaehler-%Y-%m.log Zaehler
attr Zaehler_log logtype text


Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

ntruchsess

Zitat von: Wzut am 18 Mai 2014, 13:35:07
Must sie zuerst selbst erzeugen im FHEM Modul Verzeichniss (da wo auch 21_OWCOUNT.pm liegt)

Die Dateien sollten um Mitternacht von selber angelegt werden. Das kann man forcieren, indem man für jeden Channel einmalig ein 'set XXX midnight A/B <gewünschter Zählerstand>' absetzt. FHEM braucht dafür Schreibrechte im 'FHEM'-verzeichnis (dort wo die ganzen Module liegen, ein Attribut das Verzeichnis konfigurierbar zu machen fehlt bisher...)

Gruß,

Norbert
while (!asleep()) {sheep++};

Prof. Dr. Peter Henning

Da in einerm anderen thread gerade eine Diskussion über die Verzeichnisstruktur läuft, habe ich das beisher noch nicht eingeabut.

LG

pah