OWX asynchron überarbeitet

Begonnen von ntruchsess, 30 Juni 2013, 00:55:59

Vorheriges Thema - Nächstes Thema

Starkstrombastler

Bei mir sieht das so aus:

Kicking ist im Interface (DS2480) und bei den DS18B20 eingeschaltet.

Intervall im Interface (DS2480)  = 300 sec
Intervall-Attribut bei den DS18B20 = 90
Intervall-Setting bei den DS18B20 = 9999

als Ergebnis bekomme ich alle fünf Minuten einen Eintrag in die Log-Datei, Temperaturen werden korrekt gemessen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

det.

komisch bei mir sieht das so aus und funktioniert zuverlässig:

LG
det.

det.

Hallo Norbert,
es gibt mit Deinen neu eingecheckten Modulen noch eine Kleinigkeit im LOG (ich nutze ja testweise einen USB Adapter asynchron und den COC ähnlichen synchron):
2014.05.10 18:17:18 1: OWX_CCC::Receive: unexpected number of 24 bytes on bus CUL_0
2014.05.10 17:56:18 1: OWX_CCC::Receive: unexpected number of 13 bytes on bus CUL_0
2014.05.11 12:16:14 1: OWX_CCC::Receive: unexpected number of 17 bytes on bus CUL_0
2014.05.11 11:12:13 1: OWX_CCC::Receive: unexpected number of 17 bytes on bus CUL_0
LG
det.

cwagner

Hi det,

in der Tat, nachdem mich Deine Screenshots darauf gestoßen haben, dass die Temperatur-Devices nun ein Merkmal onkick im Attribut tempConv haben, habe ich alle umgestellt und stelle nun fest: Jo, dat löpt.
Offenbar bestimmt nun aber das Interval im OWX_ASYNC einheitlich für alle Fühler den Abfragezyklus. Damit kann ich leben.

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

AHA1805

Hallo

ich habe gestern Abende ein Update gemacht und darauf hin funktionierte OWCOUNT nicht mehr.

Das komische hierbei war jedoch das get ow_Counter raw A bzw. get ow_Counter raw B Werte zurück lieferte.

Der Befehl get ow_Counter counters jedoch keine Wert  zurück liefert.
Es kam aber auch keine Fehlermeldung.

Die OWTEMP funktionieren einwandfrei.

Meine OW Config

define OWio1 OWX_ASYNC /dev/ttyUSB0
attr OWio1 room OWX

define ow_Counter OWCOUNT DS2423 A2D984000005
attr ow_Counter AFactor 0.01
attr ow_Counter AMode daily
attr ow_Counter AName G-Energy|energy
attr ow_Counter AOffset 1067591
attr ow_Counter ARate G-Power|gas
attr ow_Counter AUnit kWh|kWh
attr ow_Counter BFactor 0.00125
attr ow_Counter BMode daily
attr ow_Counter BName E-Energy|energy
attr ow_Counter BOffset 12262851
attr ow_Counter BRate E-Power|power
attr ow_Counter BUnit kWh|kWh
attr ow_Counter IODev OWio1
attr ow_Counter alias Energie
attr ow_Counter group _Heizung_
attr ow_Counter model DS2423eold
attr ow_Counter nomemory 1
attr ow_Counter room OWX
attr ow_Counter stateFormat {sprintf("Strom:  %.3f kW/h [%.3f kW] Gas:  %.2f qm",ReadingsVal("ow_Counter","E-Energy",0), ReadingsVal("ow_Counter","E-Power",0),ReadingsVal("ow_Counter","G-Energy",0))}

define ow_2 OWTHERM DS1820 98CC70010800
attr ow_2 IODev OWio1
attr ow_2 alias Heizung Rücklauf
attr ow_2 event-on-change-reading state
attr ow_2 group _Heizung_
attr ow_2 model DS1820
attr ow_2 room OWX,Sensoren
attr ow_2 tempHigh 75
attr ow_2 tempLow 18



Habe  einige Versuche ausgeführt, aber das auslesen der Counter nicht hinbekommen,
erst nach dem ich den alten Stand wieder hergestellt habe funktionierte es wieder.

Ich habe jetzt alle relevanten OWX Files aus einem alten Stand wieder hergestellt und darauf funktionierte get ow_Counter counters auch wieder


Ich weiß aber nicht an was es liegen könnte.

Ich habe beide Sätze der Files an gehangen, vielleicht hilft das was.

Ansonsten funktionierte bis jetzt OWX_ASYNC absolut zuverlässig :)

Schöne Grüße
Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

eldrik

#140
Hi,

ich wollte heute mal OWX_ASYNC anstelle von 10_OWServer ausprobieren, habe auf meiner fhem2fhem Pi Instanz ein FHEM update durchgeführt erhalte jedoch beim define von OWX_ASYNC die folgende Fehlermeldung.

Der 1Wire Busmaster ist ein Pi I2C Austeckmodul von Uwe.

OWServer auf dem Pi wurde vorher gestoppt.

OWX_ASYNC_Init failed: OWX_SER: Serial device /dev/i2c-1@9600 not defined: Inappropriate ioctl for device

Was mache ich falsch?

Edit: korrigiert mich oder ist i2c bisher nicht implementiert  :-[

Greetz
Eldrik

det.

Zitat von: eldrik am 11 Mai 2014, 19:59:17
erhalte jedoch beim define von OWX_ASYNC die folgende Fehlermeldung.
Der 1Wire Busmaster ist ein Pi I2C Austeckmodul von Uwe.
Was mache ich falsch?
nichts, die Aufsteckplatine von Uwe geht nicht mit OWX - das hat Er damals auch auf Nachfrage so bestätigt - wenn ich mich recht erinnere
LG
det.

Prof. Dr. Peter Henning

Das Modul OWTHERM überprüft, ob es Lesefehler gibt (ERRCOUNT) Wenn das 5x passiert ist, wird das Intervall auf 9999 gesetzt.

Mglicherweise funktioniert das mit OWX_ASYNC noch nicht.

LG

pah

AHA1805

Zitat von: AHA1805 am 11 Mai 2014, 17:59:34

Das komische hierbei war jedoch das get ow_Counter raw A bzw. get ow_Counter raw B Werte zurück lieferte.

Der Befehl get ow_Counter counters jedoch keine Wert  zurück liefert.
Es kam aber auch keine Fehlermeldung.

Die OWTEMP funktionieren einwandfrei.



Habe jetzt einfach mal nur die alte 21_OWCOUNT verwendet und nun funktioniert es auch.
Ob das gut ist  ???

Stand welcher funktioniert
# $Id: 21_OWCOUNT.pm 5507 2014-04-11 09:37:45Z ntruchsess $

Stand welcher nicht funktioniert
# $Id: 21_OWCOUNT.pm 5789 2014-05-08 20:17:42Z ntruchsess $

Hat sonst niemand Probleme mit OWX_ASYNC und OWCOUNT?
Ich hoffe, dies macht es leichter den Fehler einzugrenzen.

Schöne Grüße Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

det.

kann ich leider genau so bestätigen, habe heute mein Produktiv-System geupdatet - aber noch auf OWX Synchron gelassen. Vor der Umstellung muß ich erst die Befehle für die LCD anpassen.
leider bekomme ich im LOG folgende Fehler:
2014.05.12 23:00:00 1: invalid CRC
2014.05.12 22:33:51 1: OWX: Alarm presence detected on bus 1wire_1
2014.05.12 22:00:01 1: invalid CRC
2014.05.12 21:59:02 1: invalid CRC
2014.05.12 21:54:02 1: invalid CRC
2014.05.12 21:49:02 1: invalid CRC
LG
det.

cwagner

 :)Das Projekt kommt voran, bei mir laufen jetzt die erwähnten Sensoren und Aktoren asynchron mit einem zentralen Interval von 30 Sekunden.

Christian

PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Tobias

Die Module OWCOUNT/OWTEMP/OWxxxxxx laufen immer noch sauber mit OWSERVER? Oder bin ich gezwungen jetzt auf OWX umzustellen?
Ehrlich gesagt traue ich mich nicht mein Produktivsystem zu updaten...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 13 Mai 2014, 08:25:11
Die Module OWCOUNT/OWTEMP/OWxxxxxx laufen immer noch sauber mit OWSERVER? Oder bin ich gezwungen jetzt auf OWX umzustellen?

Die Frontendmodule sollten weiterhin mit OWSERVER laufen, an dem code habe ich nichts für OWX_ASYNC geändert.

Gruß,

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

ntruchsess

Zitat von: det. am 12 Mai 2014, 23:19:43
2014.05.12 22:00:01 1: invalid CRC
2014.05.12 21:59:02 1: invalid CRC
2014.05.12 21:54:02 1: invalid CRC
2014.05.12 21:49:02 1: invalid CRC


lassen sich die 'invalid CRC'-meldungen einem bestimmten Device(typ) zuordnen? Dummerweise gibt's zu viele Stellen in den OWX-Frontend-modulen, die das (ohne Angabe des Devices) im Fehlerfall so loggen.

Gruß,

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

ntruchsess

#149
Zitat von: AHA1805 am 11 Mai 2014, 17:59:34
Der Befehl get ow_Counter counters jedoch keine Wert  zurück liefert.
Es kam aber auch keine Fehlermeldung.

Das ist wohl ein Regression-bug, der verhindert das auf emulierten DS2423 der state aktualisiert wird. Habe ich gerade gefixed (da ich erst heute abend testen kann erst mal auf github): 21_OWCOUNT.pm

Zitat von: AHA1805 am 12 Mai 2014, 19:56:27
Habe jetzt einfach mal nur die alte 21_OWCOUNT verwendet und nun funktioniert es auch.
Ob das gut ist  ???

aktuell ist OWX_ASYNC noch kompatibel mit den noch nicht auf Protothreads umgebauten Frontendmodulen. Die 'alte' asynchrone API baue ich in naher Zukunft aber aber zurück, beides zu supporten macht keinen Sinn.

Gruß,

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