Neue Version OWCOUNT

Begonnen von Prof. Dr. Peter Henning, 11 Januar 2014, 08:04:53

Vorheriges Thema - Nächstes Thema

ntruchsess

Zitat von: ergerd am 09 April 2014, 19:56:58
ich bin erst jetzt dazu gekommen 21_OWCOUNT.pm, Version 5.15 zu testen.
Bei mir wird jetzt nur noch ein einziges Mal in das Logfile der Counter geschrieben, und zwar beim Start von FHEM, dann nie wieder.
Muss ich irgend etwas in der fhem.cfg anpassen?

Hallo Rainer,

in der fhem.cfg müsste nichts geändert werden. Ich konnte den Fix mit OWServer aber gestern mangels funktionierendem Busmaster nicht testen, da scheint irgendwas noch nicht zu passen. Heute ist der DS2480 von Tobias gekommen, damit kriege ich das schon hin.

Von der Kommandozeile starten geht schon. Bei Dir scheint nur 'lsusb' nicht im Suchpfad zu sein. (Du kannst aber autocrate in der fhem.cfg auch einfach ausschalten, das braucht man bei einem fertig aufgesetztem fhem-system ja nicht mehr, das verlängert nur die Startup-zeit).

Gruß,

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

ntruchsess

Zitat von: Bastelbernd am 09 April 2014, 20:46:51
bei mr läuft die Version 5.15 bisher sehr gut. :D

Schick, dann ist der OWX-part von OWCOUNT für echte DS2423 jetzt wohl in trockenen Tüchern ;-)
Dann schau ich mir den OWServer-part jetzt noch mal genauer an.

Gruß,

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

ntruchsess

#92
Zitat von: ergerd am 09 April 2014, 19:56:58
ich bin erst jetzt dazu gekommen 21_OWCOUNT.pm, Version 5.15 zu testen.
Bei mir wird jetzt nur noch ein einziges Mal in das Logfile der Counter geschrieben, und zwar beim Start von FHEM, dann nie wieder.

mein Fix für filebasierte mignight-values für OWServer + emulierte DS2423 war nicht ganz vollständig, da gab's noch einen parse-fehler, wenn (mangels internem memory des emulierten DS2423) beim SetPage keine Werte da waren.

das ist in 21_OWCOUNT.pm Version 5.16 behoben.

Was aber noch Probleme macht: die automatische Erkennung des DS2423-models (mit oder ohne internen Speicher) erkennt den Chip zwar korrekt, korrumpiert aber vorher vorhandene Midnight-values bei echten DS2423 plus OWServer :-(
Mit emulierten DS2423 geht's, die files werden jetzt sauber geschrieben und gelesen.

Was mir noch nicht so gefällt: die midnight-files werden in das FHEM-verzeichnis (zu den Modulen) geschrieben. Das Verzeichnis ist auf manchen Installationen readonly. Ablage im log-verzeichnis (oder konfigurierbar) ware sinnvoller.

Happy testing ;-)

Gruß,

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

ergerd

Hallo Norbert,

ich habe 21_OWCOUNT.pm installiert, aber es hat sich nichts geändert. Wenn ich FHEM auf der Synology neu starte wird ein Eintrag in dem Logfile eines Counters erzeugt, dann nichts mehr. Auch habe ich ja Logfiles für 2 Counter (myOWFS_C1 und myOWFS_C2) definiert, es wird aber nur in myOWFS_C2 der eine Eintrag geschrieben.

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

ntruchsess

hm... schade. Nachdem gestern der neue DS2480 von Damian pünktlich angekommen ist, hab extra dafür den Pi wieder ausgegraben und OWserver drauf installiert. Ging (bis auf den behobenen Fehler beim Parsen der midnight-werte) eigentlich auf Anhieb.
Dein OWCOUNT bleibt vermutlich beim initialen Test des DS2423-typs hängen. Hab grade gesehen in Deiner config ist das Attribut nonblocking beim OWServer gesetzt, das hatte ich bei meinen Tests nicht drin. Versuchs mal ohne. Ich hab heute abend vorraussichtlich selber keine Zeit was zu machen, ich komme erst spät nach Hause.

Gruß,

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

Martin

Hallo also bei mir wird mit deiner neuen Version nichts mehr geloggt


Gruß
Martin

ntruchsess

#96
Hallo Martin,
ich würde Dir wirklich gerne helfen, aber in dem Fall kann ich mal wieder nur auf den Beitrag von Pah verweisen.

OWCount kann mittlerweile in so vielen möglichen Kombinationen aus Busmaster, DS2423-model, IODev plus über die attribute beeinflussbare Verhaltensweisen betrieben werden, die kann ich gar nicht alle testen und erst recht nicht wissen, welche davon jetzt bei Dir (nicht) läuft.

ins Blaue geraten:
OWServer, attribute 'nonblocking':  Note: unset nonblocking if you experience lockups of FHEM.

Gruß,

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

ntruchsess

Zitat von: ntruchsess am 09 April 2014, 23:39:35
Was aber noch Probleme macht: die automatische Erkennung des DS2423-models (mit oder ohne internen Speicher) erkennt den Chip zwar korrekt, korrumpiert aber vorher vorhandene Midnight-values bei echten DS2423 plus OWServer

Fehler gefunden und behoben.

Der OWServer-relevante Pfad im InitializeDevice hatte Aufrufe für OWX drin :-(
Damit sind diese Fehler bei Verwendung von OWCOUNT mit OWServer auch Vergangenheit:

2014.04.11 10:02:32 3: OWX: Reset called with undefined interface
2014.04.11 10:02:32 3: OWX: Complex called with undefined interface


Version ist jetzt 5.17, da mir jetzt kein für mich nachvollziehbarer Bug mehr bekannt ist, ist die Version diesmal ins Fhem-SVN commitet und damit per update verfügbar.

Gruß,

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

ergerd

Hallo Norbert,

bei mir geht nach wie vor nichts.

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

ntruchsess

Hallo Rainer,

ich brauche da schon etwas mehr Infos, wie gesagt - bei mir geht OWCOUNT mit OWServer problemlos. Wobei mein owserver-prozess mit einem DS2480 als Busmaster auf einem Pi läuft und vieleicht auch anders als bei Dir konfiguriert ist?
Hast Du das Attribut 'nonblocking' am OWServer entfernt bzw. auf 0 gesetzt?
kannst Du Deine owfs-konfiguration anhängen?
Bleibt fhem komplett stehen (kann man die Weboberfläche noch aufrufen)?
Könntest Du fhem manuel von der Konsole starten (und die Konsole offen lassen), damit Du auch perl-fehlermeldungen die nicht ins Logfile geschrieben werden, sehen kannst?

(gleiches gilt auch für Dich Martin, falls Du möchtest, dass ich Dir dabei helfe).

Gruß,

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

ergerd

Hallo Norbert,

nonblocking ist auskommentiert. Ich bin nicht sicher was du mit owfs-konfiguration meinst, das was in der fhem.cfg steht? Das habe ich in diesem Thread schon hochgeladen, es hat sich nur nonblocking geändert.

Hier die Ausgabe von der Konsole:

DiskStation> Can't exec "lsusb": No such file or directory at /usr/local/FHEM/share/fhem/FHEM/98_autocreate.pm line 366.
Use of uninitialized value $value_length in concatenation (.) or string at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 558.
Use of uninitialized value $val in pack at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 558.
Use of uninitialized value $size in pack at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 359.
Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/21_OWCOUNT.pm line 1133.
DiskStation> Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/00_OWX.pm line 726.
Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/00_OWX.pm line 726.
Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/00_OWX.pm line 726.
Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/00_OWX.pm line 726.

Ich hoffe es hilft dir.

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

ergerd

Hallo Norbert,

noch ein Hinweis:
Seit einiger Zeit sind folgende Einträge in meiner fhem.cfg, die ich nicht eingefügt habe (autocreate enabled):

define DS2423_404C0F000000 OWDevice 1D.404C0F000000 60
attr DS2423_404C0F000000 IODev myOWFS
attr DS2423_404C0F000000 model DS2423
attr DS2423_404C0F000000 room hidden
myOWFS_C1:
define DS2423_2BD20D000000 OWDevice 1D.2BD20D000000 60
attr DS2423_2BD20D000000 IODev myOWFS
attr DS2423_2BD20D000000 model DS2423
attr DS2423_2BD20D000000 room hidden

Warum sind die da? Ich habe sie doch schon definiert:
define myOWFS_C1 OWCOUNT DS2423 2BD20D000000 300
attr myOWFS_C1 AFactor 0.001
attr myOWFS_C1 AMode daily
attr myOWFS_C1 AName Stromverbrauch1|energy
attr myOWFS_C1 APeriod hour
attr myOWFS_C1 ARate Leistung1|power
attr myOWFS_C1 AUnit kWh|kWh
attr myOWFS_C1 BFactor 0.001
attr myOWFS_C1 BMode daily
attr myOWFS_C1 BName Stromverbrauch2|energy
attr myOWFS_C1 BPeriod hour
attr myOWFS_C1 BRate Leistung2|power
attr myOWFS_C1 BUnit kWh|kWh
attr myOWFS_C1 IODev myOWFS
attr myOWFS_C1 LogM FileLog_myOWFS_C_M
attr myOWFS_C1 fp_Erdgeschoss 820,200,0,
attr myOWFS_C1 model DS2423
attr myOWFS_C1 room hidden
define myOWFS_C2 OWCOUNT DS2423 404C0F000000 300
attr myOWFS_C2 AFactor 0.001
attr myOWFS_C2 AMode daily
attr myOWFS_C2 AName Stromverbrauch3|energy
attr myOWFS_C2 APeriod hour
attr myOWFS_C2 ARate Leistung3|power
attr myOWFS_C2 AUnit kWh|kWh
attr myOWFS_C2 BFactor 0.001
attr myOWFS_C2 BMode daily
attr myOWFS_C2 BName Stromverbrauch4|energy
attr myOWFS_C2 BPeriod hour
attr myOWFS_C2 BRate Leistung4|power
attr myOWFS_C2 BUnit kWh|kWh
attr myOWFS_C2 IODev myOWFS
attr myOWFS_C2 LogM FileLog_myOWFS_C_M
attr myOWFS_C2 fp_Erdgeschoss 830,200,0,
attr myOWFS_C2 model DS2423
attr myOWFS_C2 room hidden

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

ntruchsess

Zitat von: ergerd am 11 April 2014, 22:26:33
Ich bin nicht sicher was du mit owfs-konfiguration meinst
Ich meine die owfs.conf. Das fhem-modul OWServer setzt auf owfs auf. D.h. wenn OWCOUNT bei mir mit owfs funktioniert, und bei Dir nicht, dann liegt da vermutlich irgendwo der Hund begraben.


Zitat von: ergerd am 11 April 2014, 22:26:33
Use of uninitialized value $value_length in concatenation (.) or string at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 558.
Use of uninitialized value $val in pack at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 558.
Use of uninitialized value $size in pack at /usr/local/FHEM/share/fhem/FHEM/lib/OWNet.pm line 359.
Use of uninitialized value in substr at /usr/local/FHEM/share/fhem/FHEM/21_OWCOUNT.pm line 1133.
...
Den Fehler habe ich auch schon gesehen, der kommt, wenn im OWCOUNT_InitializeDevice beim Testen des DS2423-typs ein Fehler passiert ist und dann versucht wird einen undefinierten Wert zurückzuschreiben. Also Symptom und nicht Ursache.

Zitat von: ergerd am 11 April 2014, 23:11:53
Seit einiger Zeit sind folgende Einträge in meiner fhem.cfg, die ich nicht eingefügt habe (autocreate enabled):

define DS2423_404C0F000000 OWDevice 1D.404C0F000000 60
...
Warum sind die da? Ich habe sie doch schon definiert:
define myOWFS_C1 OWCOUNT DS2423 2BD20D000000 300
Die werden vom OWServer angelegt, wenn autocreate enabled ist. OWServer + OWDevice kommen von Boris Neubert und Martin Fischer, OWCOUNT + OWX von Peter Henning. P. Henning hat in seine Module Unterstützung für das OWServer backend eingebaut, allerdings wird das von B.Neubert und M.Fischer nicht aktiv unterstützt. U.a. ignoriert OWServer beim Autocreate existierende OWX-moduleinträge. Also entweder autocreate ausstellen oder OWX als Backend für OWCOUNT benutzen (oder OWDevice nehmen, je nachdem, was besser für Deine Zwecke passt).

Gruß,

Norbert

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

ergerd

Hallo Norbert,

der Groschen ist gefallen. An die owfs.conf habe ich mich nicht erinnert, aber die muss ich wohl eingerichtet haben, ist allerdings auch schon über 1 Jahr her :-)
Hier der Inhalt:
# This is the main OWFS configuration file. You should read the
# owfs.conf(5) manual page in order to understand the options listed
# here.

# setup owserver's port
server: port = 4304
# all programs BUT not owserver see this line
!server: server = 192.168.48.228:4304

# setup owserver's device
# only owserver connects to the USB device
#server: device = /dev/ttyS0
server: usb = all

# setup owhttpd's port
http: port = 3001

# random simulated device
#server: FAKE = DS2406,DS2413

# fuseow
mountpoint = /mnt/1wire
allow_other

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

ntruchsess

danke für die Info, hab das grade mal mit meiner owfs.conf verglichen, sieht im Prinzip völlig equivalent aus.
Bin leider nicht der Experte, was owfs angeht - das Verhalten kann natürlich von der owfs-version abhängen, die wird für Dein Synology-NAS vermutlich nicht die gleiche sein, wie auf meinem Pi.

Was mir aber sinnvoll erscheint, wäre die automatische Deviceerkennung im OWCOUNT so zu ändern, dass sie nur stattfindet, wenn das DS2423-model noch nicht bekannt (und per Attribut) gesetzt ist. Damit könnte man bei Installationen, die hier hängenbleiben das model-attribut manuell setzen. Das muss ich aber noch genauer durchdenken, wie das wirklich sinnvoll und benutzerfreundlich zu machen wäre, weil die Erkennung ja beim AutoCreate der OWX-devices ja trotzdem erst mal laufen sollte (und da prinzipiell zu den gleichen Hängern führen könnte). Schon ein bischen blöd, dass ich das bei mir nicht reproduzieren kann.

Gruß,

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