Hallo Liste,
nachdem die OWX-Module einige Jährchen auf dem Buckel haben (und einen Kern meiner ganzen Installation bilden), kommt die synchrone Abfrage so langsam an die Grenzen des Tolerablen. Ich bin deshalb dabei, den ganzen Kram auf eine asynchrone Abfrage umzustricken - aber _ohne_ die aus meiner Sicht unschönen Protothreads von Norbert Truchsess (Sorry, Norbert...).
Das ist eine ganze Menge Arbeit, bisher funktioniert es ganz gut für das Backend und das Modul OWTHERM (OWSWITCH ist so halb fertig...) Ich suche deshalb jemanden, der beim Testen dieser Alpha-Versionen mitmacht - bitte nur erfahrene 1-Wire Anwender.
LG
pah
hallo pah,
kann gen mitmachen, habe Dein OWX erfolgreich mit 4 USB Busmastern auf 2 Cubieboards verteilt laufen. Sehr erleichtern würde die Testphase, wenn Du dem LCD Modul einen Parameter für die Zeilen/Zeichenanpassung "my @lcdpage" gönnen würdest.
OK, werde es berücksichtigen.
Welche Werte haben sich bei Dir als richtig heruasgestellt ?
LG
pah
bei mir geht es prima mit folgender Einstellung:
Zitatmy $lcdcontroller = "KS0073";
my $lcdlines = 4;
my $lcdchars = 20;
#my @lcdpage = (0,32,64,96);
my @lcdpage = (0,64,20,84);
Ich teste doch immer wieder gerne :)
Gruß
Uwe
Wegen dem LCD, auch die Zeichenersetzung über attribute wäre eine feine Sache. Hier meine Anpassungen:
my $lcdcontroller = "HD44780";
my $lcdlines = 4;
my $lcdchars = 20;
#my @lcdpage = (0,32,64,96);
my @lcdpage = (0,64,20,84);
#-- replace umlaut chars for special codepage
$msg =~ s/ä/\xE1/g;
$msg =~ s/ö/\xEF/g;
$msg =~ s/ü/\xF5/g;
$msg =~ s/Ü/\x03/g;
$msg =~ s/Ö/\x02/g;
$msg =~ s/Ä/\x01/g;
$msg =~ s/ß/\xE2/g;
$msg =~ s/°/\xDF/g;
/Daniel
Zitat von: Prof. Dr. Peter Henning am 08 März 2016, 18:22:36
Ich bin deshalb dabei, den ganzen Kram auf eine asynchrone Abfrage umzustricken - aber _ohne_ die aus meiner Sicht unschönen Protothreads von Norbert Truchsess (Sorry, Norbert...).
Die Protothreads sind wirklich nicht 'schön', die haben eine doch sehr technisch bedingte API, der muss man nicht unbedingt nachweinen. Funktionieren tun sie aber sehr effektiv :-)
Hast Du eine 'schöne' (im Sinne von wart- und wiederverwendbare) Lösung mit der Du die bei mehrstufingen asynchronen Abläufen dann doch eher unübersichtich werdenden zahlreichen callback-funktionen vermeiden kannst?
Ich hänge mal die Alphas und Betas hier an.
Im neuen OWCOUNT fehlt noch die automatisierte Überprüfung, ob ein memory vorhanden ist. Die memory writes habe ich erst heute realisiert.
Bisher funktioniert auch nur das Ansprechen des USB Busmasters - aber damit geht es schon ganz gut.
LG
pah
Edit: 00_OWY.pm muss natürlich als 00_OWX.pm gespeichert werden.
hallo pah,
getestet auf dem kleinen Cubie mit nur wenigen Geräten:
synchron geht:
2016.03.10 20:34:43 1: Including ./log/fhem.save
2016.03.10 20:34:44 0: Featurelevel: 5.7
2016.03.10 20:34:44 0: Server started with 26 defined entities (fhem.pl:11000/2016-03-05 perl:5.020002 os:linux user:root pid:8140)
2016.03.10 20:34:47 1: OWX: 1-Wire devices found on bus 1wire_2 (Temp.Sauna,OWSWITCH_Garten,OWCOUNT_KG)
2016.03.10 20:34:49 1: OWX: 1-Wire devices found on bus 1wire_3 (OWCOUNT_STROM,OWCOUNT_WITT)
Mondaufgang: 07:43 -- 1Monduntergang: Mondaufgang: 07:43 -- 0Monduntergang: 21:242016.03.10 20:34:54 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:34:54 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:34:54 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:54 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:34:54 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:34:55 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x31 0x30 0x38 0x30 0x2e 0x37 0x30 0x02 0x10 0xff 0xbf 0x00
2016.03.10 20:34:55 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:55 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:34:55 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:34:55 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:34:56 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:56 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:34:56 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:34:56 1: OWX_Complex called with data 0x0f 0x00 0x00 0x40 0xff 0xcb 0x10 0x40 0x7f 0xff 0x61 0x28 0xf7 0xff 0x00 0x00 0xbf 0xf7 0x00 0x18 0xff 0xff 0x00 0x08 0xfe 0xfe 0x82 0x00 0xff 0xd7 0x20 0x00 0x7f 0xff 0x00
2016.03.10 20:34:56 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:56 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:34:57 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:34:57 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:34:57 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:34:57 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:34:58 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:58 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:34:58 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:34:58 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x31 0x37 0x38 0x2e 0x30 0x38 0x00 0x00 0xff 0xef 0x00
2016.03.10 20:34:58 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:58 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:34:59 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:34:59 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:34:59 1: OWX_Complex called with data 0xaa
2016.03.10 20:34:59 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:34:59 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:35:00 1: OWX_Complex called with data 0x0f 0x00 0x00 0x00 0xfe 0xff 0x00 0x00 0xbf 0xff 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x00 0x10 0xff 0xff 0x00 0x00 0xfb 0xff 0x00 0x01 0xf7 0xef 0x00 0x00 0xff 0xff 0x00
2016.03.10 20:35:00 1: OWX_Complex called with data 0xaa
2016.03.10 20:35:00 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:35:00 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:35:00 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:35:00 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:35:01 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:35:01 1: OWX_Complex called with data 0xaa
2016.03.10 20:35:01 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:35:01 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:35:01 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x20 0x20 0x31 0x2e 0x30 0x30 0x00 0x00 0xff 0x7f 0x00
2016.03.10 20:35:02 1: OWX_Complex called with data 0xaa
2016.03.10 20:35:02 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:35:02 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:35:02 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:35:02 1: OWX_Complex called with data 0xaa
2016.03.10 20:35:02 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:35:03 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:35:03 1: OWX_Complex called with data 0x0f 0x00 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xfe 0x00 0x00 0xff 0xf7 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x01 0x00 0xff 0x7f 0x04 0x04 0xff 0xff 0x00
2016.03.10 20:35:03 1: OWX_Complex called with data 0xaa
2016.03.10 20:35:03 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:35:03 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:35:04 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:35:04 1: OWX_Complex called with data 0xf5 0xdd 0xff
2016.03.10 20:35:04 1: A OFF B OFF
2016.03.10 20:35:04 1: OWX_Complex called with data 0x4e 0x19 0x05 0x7f
2016.03.10 20:35:04 1: OWX_Complex called with data 0x44
2016.03.10 20:35:05 1: OWX_Complex called with data 0xbe
2016.03.10 20:35:05 1: T: 15.19 °C
asynchron startet nicht:
2016.03.10 20:30:08 0: Featurelevel: 5.7
2016.03.10 20:30:08 0: Server started with 26 defined entities (fhem.pl:11000/2016-03-05 perl:5.020002 os:linux user:root pid:7904)
2016.03.10 20:30:11 1: OWX: 1-Wire devices found on bus 1wire_2 (Temp.Sauna,OWSWITCH_Garten,OWCOUNT_KG)
2016.03.10 20:30:14 1: OWX: 1-Wire devices found on bus 1wire_3 (OWCOUNT_STROM,OWCOUNT_WITT)
Mondaufgang: 07:43 -- 1Monduntergang: Mondaufgang: 07:43 -- 0Monduntergang: 21:242016.03.10 20:30:19 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:19 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:19 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:19 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:30:19 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:20 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x31 0x30 0x38 0x30 0x2e 0x37 0x30 0x02 0x10 0xff 0xbf 0x00
2016.03.10 20:30:20 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:20 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:30:20 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:20 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:20 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:21 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:30:21 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:21 1: OWX_Complex called with data 0x0f 0x00 0x00 0x40 0xff 0xcb 0x10 0x40 0x7f 0xff 0x61 0x28 0xf7 0xff 0x00 0x00 0xbf 0xf7 0x00 0x18 0xff 0xff 0x00 0x08 0xfe 0xfe 0x82 0x00 0xff 0xd7 0x20 0x00 0x7f 0xff 0x00
2016.03.10 20:30:21 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:21 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:30:21 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:22 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:30:22 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:22 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:22 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:23 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:30:23 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:23 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x31 0x37 0x38 0x2e 0x30 0x38 0x00 0x00 0xff 0xef 0x00
2016.03.10 20:30:23 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:23 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:30:23 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:24 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:24 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:24 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:30:24 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:24 1: OWX_Complex called with data 0x0f 0x00 0x00 0x00 0xfe 0xff 0x00 0x00 0xbf 0xff 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x00 0x10 0xff 0xff 0x00 0x00 0xfb 0xff 0x00 0x01 0xf7 0xef 0x00 0x00 0xff 0xff 0x00
2016.03.10 20:30:25 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:25 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:30:25 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:25 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:30:25 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:26 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:26 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:26 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x0b
2016.03.10 20:30:26 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:26 1: OWX_Complex called with data 0x0f 0xc0 0x01 0x32 0x30 0x31 0x36 0x2d 0x30 0x33 0x2d 0x30 0x39 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x20 0x20 0x31 0x2e 0x30 0x30 0x00 0x00 0xff 0x7f 0x00
2016.03.10 20:30:26 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:27 1: OWX_Complex called with data 0x5a 0xc0 0x01 0x1f
2016.03.10 20:30:27 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:27 1: OWX_Complex called with data 0x0f 0x00 0x00 0x4f 0x57 0x43 0x4f 0x55 0x4e 0x54 0x20 0x35 0x2e 0x33 0x33
2016.03.10 20:30:27 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:27 1: OWX_Complex called with data 0x5a 0x00 0x00 0x0b
2016.03.10 20:30:27 1: OWX_Complex called with data 0xa5 0x00 0x00
2016.03.10 20:30:28 1: OWX_Complex called with data 0x0f 0x00 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xfe 0x00 0x00 0xff 0xf7 0x00 0x00 0xff 0xff 0x00 0x00 0xff 0xff 0x01 0x00 0xff 0x7f 0x04 0x04 0xff 0xff 0x00
2016.03.10 20:30:28 1: OWX_Complex called with data 0xaa
2016.03.10 20:30:28 1: OWX_Complex called with data 0x5a 0x00 0x00 0x1f
2016.03.10 20:30:28 1: OWX_Complex called with data 0xa5 0xc0 0x01
2016.03.10 20:30:28 1: OWX_Complex called with data 0xa5 0xe0 0x01
2016.03.10 20:30:29 1: [OWX_Qomplex] Added to OWX send queue dev=124EF17B000000B0 numread=4 at 1457638229 152248
2016.03.10 20:30:29 1: Queue contains 1 entries after insertion
2016.03.10 20:30:29 1: => 124EF17B000000B0 expecting 4 bytes, waiting
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:29 1: [OWX_PrQueue] starting send-receive cycle, queue length 1. Setting entry to active
2016.03.10 20:30:29 1: +++++++++++++++++++++++++++++++
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:29 1: [OWX_Qomplex] Added to OWX send queue dev=28FC8EC0030000A5 numread=3 at 1457638229 247251
2016.03.10 20:30:29 1: Queue contains 2 entries after insertion
2016.03.10 20:30:29 1: => 124EF17B000000B0 expecting 4 bytes, active
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 3 bytes, waiting
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:29 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.10 20:30:29 1: [OWX_Qomplex] Added to OWX send queue dev=28FC8EC0030000A5 numread=0 at 1457638229 254341
2016.03.10 20:30:29 1: Queue contains 3 entries after insertion
2016.03.10 20:30:29 1: => 124EF17B000000B0 expecting 4 bytes, active
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 3 bytes, waiting
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 0 bytes, waiting
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:29 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.10 20:30:29 1: [OWX_Qomplex] Added to OWX send queue dev=28FC8EC0030000A5 numread=9 at 1457638229 259138
2016.03.10 20:30:29 1: Queue contains 4 entries after insertion
2016.03.10 20:30:29 1: => 124EF17B000000B0 expecting 4 bytes, active
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 3 bytes, waiting
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 0 bytes, waiting
2016.03.10 20:30:29 1: => 28FC8EC0030000A5 expecting 9 bytes, waiting
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:29 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.10 20:30:29 1: OWX_Read: nonzero buffer length 6, expected 4, calling callback
2016.03.10 20:30:29 1: buffer is 0x55 0x12 0x4e 0xf1 0x7b 0x00 0x00 0x00 0xb0 0xf5 0xdd 0xff 0xcf 0xff 0x6c 0x06
2016.03.10 20:30:29 1: A OFF B OFF
2016.03.10 20:30:29 1: OWX_Read: 1wire_2 queue contains 3 entries after removal of active entry
2016.03.10 20:30:29 1: ----------------------------------------------
2016.03.10 20:30:30 1: [OWX_PrQueue] starting send-receive cycle, queue length 3. Setting entry to active
2016.03.10 20:30:30 1: +++++++++++++++++++++++++++++++
2016.03.10 20:30:30 1: ----------------------------------------------
2016.03.10 20:30:30 1: OWX_Read: 1wire_2 received -2 instead of 3 bytes
2016.03.10 20:30:30 1: buffer is 0x55 0x28 0xfc 0x8e 0xc0 0x03 0x00 0x00
2016.03.10 20:30:30 1: ----------------------------------------------
Died at ./FHEM/00_OWX.pm line 1095.
Attribut "asynchronous=1" im OWX-backend setzen.
LG
pah
Genau diese hatte ich gesetzt und es führt zum Absturz
Im Synchronmodus läuft es bis zu ersten Switch Schaltbefehl an den DS2406 dann stützt FHEM ab:
OWSWITCH: OWSWITCH_Garten has unknown device family 12 in OWXSWITCH_BinValues setstate
Ah, ok, das ist ein schöner copy & paste-Fehler.
Versuch die angehängte beta2
LG
pah
Damit geht's von heute morgen bis jetzt! Soll ich noch mal asynchron versuchen?
Aber ja. Nur bitte korrekt setzen, ob es ein DS2423 ist oder ein emulierter. Und hinterher das Log kürzen, schreibt noch ca. 1 Mio Einträge
LG
pah
Nun komme ich auch mal dazu...
Das Log nach dem Start habe ich angehangen, ist etwas komplexer...
Ich muss noch ein paar 1Wire-Devices aus der Kiste kramen, um alles abzudecken...
Gruß
Uwe
Ein Absetzen von "set ... output A on" führt im asynchronen Modus übrigens zum Absturz von FHEM mit folgenden Meldungen:
2016.03.11 18:03:26 1: [OWX_Qomplex] Added to OWX send queue dev=3A10850C000000CF numread=2 at 1457715806 664756
2016.03.11 18:03:26 1: Queue contains 1 entries after insertion
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 2 bytes, waiting
2016.03.11 18:03:26 1: ----------------------------------------------
2016.03.11 18:03:26 1: [OWX_PrQueue] starting send-receive cycle, queue length 1. Setting entry to active
2016.03.11 18:03:26 1: +++++++++++++++++++++++++++++++
2016.03.11 18:03:26 3: Sending out 0x55 0x3a 0x10 0x85 0x0c 0x00 0x00 0x00 0xcf 0xf5 0xff 0xff
2016.03.11 18:03:26 1: ----------------------------------------------
2016.03.11 18:03:26 1: [OWX_Qomplex] Added to OWX send queue dev=3A10850C000000CF numread=1 at 1457715806 751944
2016.03.11 18:03:26 1: Queue contains 2 entries after insertion
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 2 bytes, active
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 1 bytes, waiting
2016.03.11 18:03:26 1: ----------------------------------------------
2016.03.11 18:03:26 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.11 18:03:26 1: [OWX_Qomplex] Added to OWX send queue dev=3A10850C000000CF numread=2 at 1457715806 754460
2016.03.11 18:03:26 1: Queue contains 3 entries after insertion
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 2 bytes, active
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 1 bytes, waiting
2016.03.11 18:03:26 1: => 3A10850C000000CF expecting 2 bytes, waiting
2016.03.11 18:03:26 1: ----------------------------------------------
2016.03.11 18:03:26 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.11 18:03:26 1: OWX_Read: nonzero buffer length 2, expected 2, calling callback
2016.03.11 18:03:26 1: buffer is 0x55 0x3a 0x10 0x85 0x0c 0x00 0x00 0x00 0xcf 0xf5 0x5a 0x5a
2016.03.11 18:03:26 1: A ON☇ B ON☇
2016.03.11 18:03:26 1: OWX_Read: 1wire_USB queue contains 2 entries after removal of active entry
2016.03.11 18:03:26 1: ----------------------------------------------
2016.03.11 18:03:27 1: [OWX_PrQueue] starting send-receive cycle, queue length 2. Setting entry to active
2016.03.11 18:03:27 1: +++++++++++++++++++++++++++++++
2016.03.11 18:03:27 3: Sending out 0x55 0x3a 0x10 0x85 0x0c 0x00 0x00 0x00 0xcf 0x5a 0xfe 0x01 0xff
2016.03.11 18:03:27 1: ----------------------------------------------
2016.03.11 18:03:27 1: OWX_Read: 1wire_USB received -4 instead of 1 bytes
2016.03.11 18:03:27 1: buffer is 0x55 0x3a 0x10 0x85 0x0c 0x00
2016.03.11 18:03:27 1: ----------------------------------------------
FHEM schmiert ab, wenn man ein Device physikalisch kurz aus dem Bus rausnimmt
Edit: Ups, da ist noch ein gravierender Fehler "Set Output" geht noch nicht, weil darin aufeinander folgende LESE und SCHREIB-Vorgänge auftauchen. Bitte stattdessen set gpio verwenden.
Das Stoppen beim Entfernen vom Bus ist beabsichtigt - benutze ich als Notaustieg
LG
pah
Asynchron machts nicht, FHEM stürzt sofort ab, nachdem ich an einem der zwei Busmaster asynchronus=1 setze.
Heute Morgen Absturtz mit folgenden Log Einträgen:
Died at ./FHEM/00_OWX.pm line 1095.
2016.03.12 05:12:52 1: ----------------------------------------------
2016.03.12 05:12:52 1: buffer is 0x98
2016.03.12 05:12:52 1: OWX_Read: 1wire_2 received -9 instead of bytes
2016.03.12 05:12:52 1: PERL WARNING: Use of uninitialized value $numexp in concatenation (.) or string at ./FHEM/00_OWX.pm line 1092.
2016.03.12 05:10:31 1: OWX_Complex called with data 0xa5 0xe0 0x01
Das sieht nach einem inkonsistenten Systemzustand aus - welche Devices hängen da dran ?
LG
pah
Das läuft aber gefühlt 2 Jahre ohne Probleme und Änderungen. Die Busmaster sind die von locutus, daran:
ZitatOWX: 1-Wire devices found on bus 1wire_2
28.FC8EC0030000 DS18B20 Temp.Sauna
12.4EF17B000000 DS2406/DS2507 OWSWITCH_Garten
1D.6DD80F000000 DS2423 OWCOUNT_KG
OWX: 1-Wire devices found on bus 1wire_3
1D.CE680F000000 DS2423 OWCOUNT_STROM
1D.F1490F000000 DS2423 OWCOUNT_WITT
Da soll noch die Gartenbewässerung dran, aber das verlegt sich leider nicht von selbst.
Daher so wenig, aber das ist zum Testen ideal, da ohne Komfortverlust im Absturzfall
Wenn ich den Busmaster im laufenden Betrieb auf asynchron umstelle, kann ich danach z.B. von einem DS1820 per "get ... temperature" noch die Temperatur abholen, im nächsten Moment stürzt FHEM aber ab:
2016.03.12 09:18:58 1: [OWX_Qomplex] Added to OWX send queue dev=1053375502080039 numread=0 at 1457770738 233583
2016.03.12 09:18:58 1: Queue contains 1 entries after insertion
2016.03.12 09:18:58 1: => 1053375502080039 expecting 0 bytes, waiting
2016.03.12 09:18:58 1: ----------------------------------------------
2016.03.12 09:18:58 1: [OWX_PrQueue] starting send-receive cycle, queue length 1. Setting entry to active
2016.03.12 09:18:58 1: +++++++++++++++++++++++++++++++
2016.03.12 09:18:58 3: Sending out 0x55 0x10 0x53 0x37 0x55 0x02 0x08 0x00 0x39 0x44
2016.03.12 09:18:58 1: ----------------------------------------------
2016.03.12 09:18:58 1: [OWX_Qomplex] Added to OWX send queue dev=1053375502080039 numread=9 at 1457770738 320762
2016.03.12 09:18:58 1: Queue contains 2 entries after insertion
2016.03.12 09:18:58 1: => 1053375502080039 expecting 0 bytes, active
2016.03.12 09:18:58 1: => 1053375502080039 expecting 9 bytes, waiting
2016.03.12 09:18:58 1: ----------------------------------------------
2016.03.12 09:18:58 1: [OWX_PrQueue] still waiting for reply, delay sending from queue
2016.03.12 09:18:58 1: OWX_Read: Zero buffer ok
2016.03.12 09:18:58 1: OWX_Read: 1wire_USB queue contains 1 entries after removal of active entry
2016.03.12 09:18:58 1: ----------------------------------------------
2016.03.12 09:18:59 1: [OWX_PrQueue] starting send-receive cycle, queue length 1. Setting entry to active
2016.03.12 09:18:59 1: +++++++++++++++++++++++++++++++
2016.03.12 09:18:59 3: Sending out 0x55 0x10 0x53 0x37 0x55 0x02 0x08 0x00 0x39 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2016.03.12 09:18:59 1: ----------------------------------------------
2016.03.12 09:18:59 1: OWX_Read: 1wire_USB received -4 instead of 9 bytes
2016.03.12 09:18:59 1: buffer is 0x55 0x10 0x53 0x37 0x55 0x02
2016.03.12 09:18:59 1: ----------------------------------------------
Died at ./FHEM/00_OWX.pm line 1095.
Wenn ich FHEM dann mit aktiviertem asynchronous neu starte, kann ich Temperaturen abholen und auch den value des DS2890 setzen, ich bekomme den Status aber nicht angezeigt...siehe Screenshot.
OK, habe jetzt verschiedene Stellen, an denen ich nacharbeiten muss.
Melde mich mit verbesserten Modulen.
LG
pah
OK, here we go.
Die Module OWID, OWVAR, OWTHERM, OWSWITCH, OWCOUNT, OWAD, OWMULTI liegen hier in verbesserten Versionen bei, die sowohl mit dem alten OWX, als auch mit dem neuen asynchronen laufen (OWLCD fehlt noch). Unerwünschte Effekte sind nicht ausgeschlossen, darum nur als Beta3 hier angehängt. Insbesondere für die Nutzung mit dem ALTEN OWX_ASYNC und OWServer müsste man vielleicht noch testen.
OWY sollte (bei Umbenennung in 00_OWX.pm, natürlich !) das alte OWX ersetzen, hat ein Attribut für die asynchrone Behandlung. Achtung: Bisher nur mit USB-Busmastern. Die Benennung als OWY dient bei mir nur dazu, mein eigenes OWX vor dem Überschreiben zu sichern.
OWX_SER muss natürlich auch installiert werden.
Das beigelegte OWY produziert noch massenhaft Log-Einträge.
Fahrplan:
Dieses Wochenende baue ich OWLCD um (falls ich nicht doch lieber auf den Golfplatz gehe...) DONE, siehe übernächsten Post.
Bis nach Ostern sollten Tests mit dem alten OWX_ASYNC und OWServer abgeschlossen sein.
Dann werden diese Modulversionen released.
Dann wird das asynchrone Backend finalisiert und auf die anderen Interfacetypen (COC/CUN und TCP/IP) erweitert.
LG
pah
EDIT: Fluch der bösen Tat - das zuerst hochgeladene OWID hatte einen Fehler. Bitte durch das jetzt hier vorhandene ersetzen.
Was mir sofort aufgefallen ist...die Readings werden nicht automatisch aktualisiert. In keinem Modul.
Gruß
Uwe
Edit: Das betrifft den asynchronen Modus.
Das liegt daran, dass das Update erst eine ganze Weile nach dem Absetzen des Kommandos erfolgt.
EDIT: Wundert mich insofern, als die Updates nach Ablauf der entsprechenden Kommandos bei mir sehr schön automatisch erfolgen
Anbei das (vorläufig) letzte der Frontendmodule in der Version 6.0beta3, OWXLCD. Muss vlt. von det. getestet werden, mein LCD-Controller hat irgendeine Macke.
LG
pah
Guten Morgen pah,
Mein kleines System hat im synchronen Modus die Nacht gut überstanden. Die LCD sind am Hauptsystem angebunden, da hatte ich gestern Nacht nur das Modul ausgetauscht und reload des Moduls angeschoben, alle anderen OWX Module nicht angefasst. Da fehlte beim LCD die set und get Zeile, es kamen paar Meldungen auf dem Screen und es lief nicht. Sorry, es war zu spät zum ausführlichen Test. Würde aber gern alles auf dem Produktivsystem erst ersetzen, wenn es hier 2-3 Erfolgsmeldungen gibt.
In der aktuellen Version (6.0beta3) gibt es noch das Problem, dass wegen einer fehlenden Variablen im ALTEN OWX Fehlermeldungen generiert werden.
Die lassen sich unterdrücken, indem man im ALTEN 00_OWX.pm die Zeile
use vars qw{%owg_family %gets %sets $owx_version $owx_debug $owx_async};
um den letzten fett gedruckten Teil ergänzt und danach einfügt
$owx_async=1;
Ein weiterer Schönheitsfehler ist, dass in dem oben publizierten OWSWITCH noch eine Debugmeldung verblieben ist: .... Calling GetModState w. 1 0
Die hat nichts zu bedeuten, kann man ignorieren.
Erfolgsmeldungen ? Klar doch.
Von diesen beiden kleinen Schönheitsfehlern abgesehen laufen alle neuen Frontendmodule in meinem Produktivsystem :) :) :) mit dem ALTEN OWX stabil und ohne Probleme - inklusive des LCD-Controllers. Der hat (wie gewünscht) ein neues Attribut lcdgeometry bekommen.
LG
pah
Next Step: Testen mit ALTEM OWX_ASYNC (hier sind ggf. noch Anpassungen nötig, weil ich die Aufrufe von OWX...BiNValues vereinheitlicht habe)
Testen mit OWServer als Backend
Freigeben
Zitat von: Prof. Dr. Peter Henning am 19 März 2016, 09:56:19
Der hat (wie gewünscht) ein neues Attribut lcdgeometry bekommen.
Super, funktioniert. Habe auch mal einen LCD-Controller angeschlossen, läuft problemlos. Das Umstellen per lcdgeometry ist sehr hilfreich ;)
Lediglich OWCOUNT konnte ich noch nicht testen, meine Counter sind im Produktivsystem verbaut.
Gruß
Uwe
Hallo pah - perfekt, Danke!
Läuft auf dem Produktivsystem, LCD Parameter ist sehr nützlich, besonders in Phasen mit noch vielen updates. OWCOUNT zählt seit gestern Mitternacht auch ohne Probleme.
Deinem Termin zu Ostern steht offenbar nichts Grundsätzliches entgegen.
Die neuen Module laufen nun auch auf meinem eigentlichen Testsystem mit einem LAN-Interface. Ich bekomme folgende Meldungen:
2016.03.19 12:21:50 1: PERL WARNING: Use of uninitialized value $owx_async in numeric eq (==) at ./FHEM/21_OWMULTI.pm line 989.
2016.03.19 12:21:51 1: PERL WARNING: Argument "" isn't numeric in sprintf at ./FHEM/21_OWMULTI.pm line 481.
Das erste ist wie folgt zu erledigen:
ZitatDie lassen sich unterdrücken, indem man im ALTEN 00_OWX.pm die Zeile
use vars qw{%owg_family %gets %sets $owx_version $owx_debug $owx_async};
um den letzten fett gedruckten Teil ergänzt und danach einfügt
$owx_async=1;
Das zweite muss ich überprüfen.
LG
pah
Hatte ich gelesen, aber ich habe die alte OWX-Version nicht auf dem Testsystem, nur die Versionen von hier (https://forum.fhem.de/index.php/topic,50412.msg426259.html#msg426259)
SO, alle Frontendmodule jetzt in der Version 6.0beta4. Laufen mit OWX (ALT), OWX_ASYNC, OWServer - und dem neuen, noch unfertigen OWX.
Schönheitsfehler beseitigt.
LG
pah
gleich mal auf dem kleinen System getestet, der SWITCH schaltet verzögert, das hat er mit der vorherigen Version nicht gemacht
-> alle Module aus dem letzten Post, d.h. mit dem neuen OWX
2016.03.19 21:22:35 1: ----------------------------------------------
2016.03.19 21:22:35 1: OWX_Read: 1wire_2 received -8 instead of bytes
2016.03.19 21:22:35 1: ----------------------------------------------
2016.03.19 21:22:35 1: OWX_Read: 1wire_2 received -7 instead of bytes
2016.03.19 21:22:35 1: ----------------------------------------------
2016.03.19 21:22:35 1: OWX_Read: 1wire_2 received -7 instead of bytes
2016.03.19 21:22:35 1: ----------------------------------------------
2016.03.19 21:22:35 1: OWX_Read: 1wire_2 received -3 instead of 2 bytes
2016.03.19 21:22:35 1: ----------------------------------------------
2016.03.19 21:22:35 1: OWX_Read: 1wire_2 queue contains 1 entries after removal of active entry
2016.03.19 21:22:35 1: 124EF17B000000B0 w. context ds2406.modstate.1.1
2016.03.19 21:22:35 1: OWX_Read: buffer 6 bytes, expected 4. Calling callback for
2016.03.19 21:22:35 1: [OWX_Qomplex] Added to OWX send queue dev=124EF17B000000B0 context=ds2406.modstate.1.1
2016.03.19 21:22:28 1: ----------------------------------------------
2016.03.19 21:22:28 1: OWX_Read: 1wire_2 received -8 instead of bytes
2016.03.19 21:22:28 1: ----------------------------------------------
2016.03.19 21:22:28 1: OWX_Read: 1wire_2 received -7 instead of bytes
2016.03.19 21:22:28 1: ----------------------------------------------
2016.03.19 21:22:28 1: OWX_Read: 1wire_2 received -7 instead of bytes
2016.03.19 21:22:28 1: ----------------------------------------------
2016.03.19 21:22:28 1: OWX_Read: 1wire_2 received -3 instead of 2 bytes
2016.03.19 21:22:28 1: ----------------------------------------------
2016.03.19 21:22:28 1: OWX_Read: 1wire_2 queue contains 1 entries after removal of active entry
2016.03.19 21:22:28 1: 124EF17B000000B0 w. context ds2406.modstate.1.1
2016.03.19 21:22:28 1: OWX_Read: buffer 6 bytes, expected 4. Calling callback for
2016.03.19 21:22:28 1: [OWX_Qomplex] Added to OWX send queue dev=124EF17B000000B0 context=ds2406.modstate.1.1
Die Verzögerung kommt eben daher, dass jetzt ggf. andere Tasks zu erledigen sind - FHEM wartet eben nicht mehr direkt auf das Fertigwerden des 1-Wire Bus.
Allerdings sind die "received <negativer Wert> bedenklich - da fuhrwerkt noch irgendetwas synchron auf dem Bus herum. Trägt auch zur Verzögerung bei.
Man kann also _nicht_ alte und neue Module mischen.
LG
pah
Hab's auch grad noch mit den neuen Modulen kurz angetestet, mehr morgen. Funktioniert bei mir nur mit der neuen OWX (Dein OWY)-Version. Mit dem alten OWX startet FHEM sehr langsam und es werden nicht alle Devices erkannt.
Gruß
Uwe
Öh. Wundert mich insofern, als mein Produktivsystem aus genau dieser Kombination besteht...
LG
pah
Edit: Nö, besteht es natürlich nicht... Die öffentlich verfügbare Version von 00_OWX.pm ist eine URALT-Version. Mal sehen, das muss ich also in den neuen Frontend-Modulen noch irgendwie abfangen...
Noch'n Edit: Der Abend war gestern zu lang, OWSWITCH in der Version beta4 hat auch noch nen Fehler drin. Kommt daher, dass man parallel an 8 Modulen arbeitet, das gibt dann doch nen Pufferüberlauf bei mir.
Zitat von: Prof. Dr. Peter Henning am 20 März 2016, 05:43:11
OWSWITCH in der Version beta4 hat auch noch nen Fehler drin.
Dieser?
2016.03.20 10:19:15 1: OWXSWITCH_BinValues: Error - OWX_3A_41C002000000 returns invalid data length, 1 instead of 2 bytes, 0xaa
Hallo pah,
OWTHERM V6,4 geht bei mir leider nicht (liefert keine Werte), nach Einspielen V6,3 gehts wieder. Da ist offenbar auch noch was...
Bei mir geht's...
Zitat von: UweH am 20 März 2016, 12:37:33
Bei mir geht's...
schön, aber Deine Sensoren sind mir zu weit weg und der einzige, den ich im Saunaraum habe und der am kleinen Server hängt brachte eben mit 6.4 keinen Temperaturwert
Witzig.
Die einzigen Unterschiede zwischen OWTHERM 6beta3 und 6beta4 sind:
if( $main::owx_async==0 ){
vs.
if( !$master->{ASYNCHRONOUS} ){
sowie ein Doppelpunkt hinter dem T in state bei beta4.
Das sollte also nicht auftreten.
LG
pah
ok, Version 6.4 eben noch mal eingspielt, bei get xxx temperatuere kommt damit:
ZitatOWTHERM: Temp.Sauna getting values, please wait for completion
und im LOG:
2016.03.20 17:39:17 1: OWX_Read: 1wire_2 queue contains 1 entries after removal of active entr
2016.03.20 17:39:17 1: OWX_Read: Zero buffer ok
2016.03.20 17:39:17 1: [OWX_Qomplex] Added to OWX send queue dev=28FC8EC0030000A5 context=
zurück auf 6.3:
ZitatOWTHERM: Temp.Sauna.temperature => 15.4375
jajajaja:
Die 6beta4 liefert das richtige Resultat - nämlich gar nichts. Weil zum Zeitpunkt des Absetzens nämlich nur der alte Wert vorhanden ist, und keinerlei Information darüber vorliegt, wann die neuen Daten da sein werden.
Die werden dann nur im Reading aktualisiert, erzeugen auch das richtige Event - aber eben später. Und die "Live-Anzeige" geht eben nicht mehr.
LG
pah
Hallo pah,
So unzufrieden war ich mit der "Live Anzeige" der bisherigen Versionen nicht, auch wenn vielleicht der angezeigte Wert von vor 3 min war. Heute Morgen war allerdings mit 6Beta4 nach dem Update von letzter Nacht der Temperaturwert von ca. 8.30 Uhr und es war gegen 10.00 Uhr. Das war der Auslöser meiner Meldung von heute Vormittag
Wundert mich - bei mir läuft das auf dem Produktivsystem, mit Temperaturabfragen jede Minute.
Aber betreffend die "get"-Abfragen: Ich könnte natürlich einen Mechanismus einbauen, der auch nach 3 Minuten noch ein Fenster mit den Resultaten aufmacht.
LG
pah
Bringst Du noch einen Fix für OWSWITCH? Momentan läuft auf dem Produktivsystem die Beta3 sehr zufriedenstellend und auf dem kleinen System die Beta4 bis auf die SWITCH UND Temperatur Module, die machens bei mir nur in der Beta3. Auf dem Produktivsystem hab ich Dutzende Thermometer, werde wohl doch heute Abend noch einen Veruch wagen. Oh weh, wenn meine Mieterin morgen früh kalt duschen muß...
Bei OWSWITCH muss ich noch etwas nacharbeiten - es ist immer schwierig, eine Kombination aus Lese- und Schreiboperationen asynchron zu machen, und für den DS2406 stimmt da etwas mit den Bits beim Lesen externer Kurzschlussbedingungen nicht.
OWTHERM in der Version 6beta5 ist dieselbe wie beta4 - keine Fehler mehr drin.
LG
pah
Hallo pah,
Danke, geht auch mit 6Beta4 auf dem Produktivsystem. Der get Befehl liefert prompt die Temperatur, nur bei dem einen Sensor auf dem kleinen System nicht. Da werde ich morgen mal den Sensor tauschen um auszuschliessen, das der einen Treffer hat.
OK, hier der neueste Stand 6.0beta5: Fehler in OWSWITCH behoben, Schaltvorgänge durch Prioritätsbehandlung in der Queue beschleunigt (merkt man aber nur mit dem asynchronen OWX).
LG
pah
Asche auf mein Haupt, es lag an einem gammeligen Busmaster, dem ersten selbst zusammengelöteten Versuch vor ca. 5 Jahren....
Die 6Beta5 läuft auf beiden Systemen ohne Auffälligkeiten. Vielen Dank!!!
Das da könnte ich noch anbieten....
2016.03.21 19:48:29 1: PERL WARNING: Argument "" isn't numeric in sprintf at ./FHEM/21_OWMULTI.pm line 481.
Kann ich noch abfangen - genau wie in OWAD.
LG
pah
Hallo pah,
hab auch noch was - bei OWCOUNT geht A(B)Mode daily nicht. Da ich den Strom eh bezahlen muß nach dem amtlichen Zähler, interessiert mich nur der Verbrauch über den Tag. Daher habe ich bisher mit Mode daily den Gesamtverbrauch immer zum Tageswechsel automatisch von Null an zählen lassen. Das summiert sich jetzt kontinuierlich seit der Installation der neuen Versionen.
Rest läuft prima!
Kann ich nicht bestätigen.
Wasserzähler, Gaszähler = 2 x DS2423 im Mode daily, läuft mt der 6.0beta astrein.
Regenmengenzähler mit einem DS2423 Emulator, läuft mit der 6.0beta astrein im Mode daily.
Was sagt denn das Log um Mitternacht ? Stimmt irgendetwas mit den midmight-Werten nicht ?
LG
pah
ich stell mal über Nacht das loglevel rauf. Bei memory steht page 0..13 and midnight. Da hatte ich sicher nichts gesetzt oder geändert
Das bedeutet, dass das Modul memory pages 0..13 und 14, 15 gefunden hat - also einen originalen DS2423. In den memory pages 14 und 15 werden die Mitternachtswerte abgelegt.
LG
pah
Hallo zusammen,
ich habe FHEM auf einem Windows Server SBS 2011 (also Server 2008 R2) am laufen und spreche mein 1wire System über einen TCP/IP Buskoppler 2480 per OWX_ASYNC an.
Ich lese 14 Stück DS18B20 aus und steuere damit zwei DS2408 an, die meine Fussboden Ventile "auf und zu" machen.
Zusätzlich habe ich zwei DS2438 (https://www.eservice-online.de/produkte/1-wire-bus/feuchte-temperatur-helligkeit-sensor/354/temperatur-feuchte-licht-up-wohnraum-bj (https://www.eservice-online.de/produkte/1-wire-bus/feuchte-temperatur-helligkeit-sensor/354/temperatur-feuchte-licht-up-wohnraum-bj), die ich per OWMULTI auslese. Momentan natürlich nur Luftfeuchte.
Ist euch geholfen wenn ich auch mal die neuen Modul verwende und meine Erfahrungen hier poste oder macht es auf meinem System (Windows und TCP/IP) wenig/keinen Sinn?
Schöne Grüße
Speedy
Das ist sicher hilfreich - es sollte sich nämlich gar kein Unterschied zu vorher zeigen, weil OWX_ASYNC auf genau dieselbe Weise angesprochen wird, wie vorher.
LG
pah
Hallo zusammen,
also bei mir schaut das sehr gut aus. Ich habe gestern Abend die 10 Module installiert.
Soweit alles OK.
Was mir auffällt ist nur, dass ich bei den (hinter) Temperaturanzeigen der DS19B20 einen Pfeil nach unten habe - keine Ahnung woher der kommt, war früher nicht da.
Ist aber eher eine kosmetische Sache.
Ansonsten alles wunderbar!
Schöne Grüße
Speedy
Hallo Speedy,
Stell einfach unter Attribute tempHIGH und tempLOW richtig ein, dann verschwinden die Pfeile wenn die Temperatur im gewünschten Bereich ist. Außerhalb bekommst Du einen Alarm.
Kurze Rückmeldung...habe heute morgen die neuen Module auf meinem Live-System installiert...läuft. Keine Fehler, keine ominösen Logeinträge...
Gruß
Uwe
Hallo pah,
eins noch...wenn die Verbindung zu einem LAN-Interface gekappt wird (LAN weg oder Stromausfall) bleibt FHEM erst hängen und schmiert dann nach einiger Zeit ab.
Ist das mal wieder nur bei mir so oder steht das noch auf Deiner Liste?
Gruß
Uwe
Das ist gestern bei mir auch passiert - ist eine Frage der Backend-Module, die stehen als Nächstes auf der Liste.
Allerdings kommt der Absturz aus einem nicht von mir befindlichen Modul.
LG
pah
OK, Danke für die Info.
Ich habe 4 LAN-Interfaces und eins hängt nicht an einer USV...man braucht Edward A. Murphy nicht zu kennen, um zu wissen, welcher FI rausfliegt ::)
OK, habe alle neuen Frontendmodule eingecheckt.
Frohe Ostern !
pah
Moin,
kann man denn jetzt schon für das LCD Modul die Displaydaten über Attribute konfigurieren? Oder muss ich das Modul wieder anfassen nach einem Update?
Gruß
Daniel
attr <name> lcdgeometry <string>
LCD geometry, values are 0-32-64-96 or 0-64-20-84
pah
Hallo pah,
Vielen Dank, läuft prima nach dem heutigen Update ohne lästige log Einträge. Hab eine Frage zu OWSWITCH: ist der Effekt bei Eingabe von mehrmals hintereinander "set OWXSWITCH output A off" so gewollt?
Auch bei mir läuft es nach der Aktivierung von OWY und den Modulen im ASYNC-Modus störungsfrei jetzt seit 12 Stunden mit 29 Devices der Typen 2450, 2438, 2408, 18S20 und 18B20. Bemerkenswert ist der Unterschied der Systembelastung/Geschwindigkeit gemäß apptime: Pro Funktionsaufruf der Module im ASYNC-Modus zwischen 6,6 und 18 ms, in SYNC rund 1050 ms.
Was nicht funktioniert ist der 2408 am 21_OWAD - das Device wird initialisiert, dann ist aber finito - im Fhem.log finde ich:
PERL WARNING: Use of uninitialized value $context in concatenation (.) or string at ./FHEM/00_OWX.pm line 1203.
Ganz herzlichen Dank für die Arbeit, die in der 1wire-Implementierung im FHEM steckt.
Christian
Zitat von: det. am 28 März 2016, 11:02:40
ist der Effekt bei Eingabe von mehrmals hintereinander "set OWXSWITCH output A off" so gewollt?
Wenn Du diesen Effekt meinst...zweimal "...output A off" ergibt:
OWSWITCH: Could not set device OWX_3A_C9CB02000000, reason: Wide character in send at /usr/lib/i386-linux-gnu/perl/5.20/IO/Socket.pm line 284.
Hab ich also auch.
Gruß
Uwe
Nö Uwe,
Bei meinem SWITCH schaltet jedes "set output A off" zuverlässig, beim ersten Mal wenn A bereits off war A on, beim nächsten Mal B on und so weiter. Stört nur bei einem Schalter, an dem das Gartenlicht dran ist. Da ich das mit vielen anderen Schaltern vorsorglich um 1.10Uhr noch mal mit einem "off" Befehl versorge - wider vergessene nächtliche Stromfresser. Das Gartenlicht war dann immer früh an, wenn ich es nicht vergessen hatte beim Zubettgehen auszuschalten.
@cwagner: Wundert mich nicht, weil OWAD nur für den DS2450 ist. DS2408 läuft mit OWSWITCH - und zwar bei mir problemlos.
@UweH: Das ist Fehlermeldung aus Perl - keine Ahnung, woher das kommt. OWX_TCP habe ich gerade in der Überarbeitung, habe aber jetzt das ganze Osterwochenende mit der Endredaktion meines Buches zugebracht (jedenfalls den Anteil, der nicht der Familie gewidmet war).
@det.: Äh - verstehe ich nicht so ganz, was ist der Fehler ?
LG
pah
Hallo pah,
In der Hofnung Du hast einen 2406 im Einsatz, wenn Kanal A off ist und Du schaltest den noch mal off - geht er zumindest bei mir an und bei weiterem sinnlosen A off schalten geht dann B on etc. Das stört wirklich nur, wenn man einen SWITCH der schon off ist zur Sicherheit oder wegen irgendeiner Programmierung noch mal ausschaltet.
Zitat von: Prof. Dr. Peter Henning am 28 März 2016, 10:43:30
attr <name> lcdgeometry <string>
LCD geometry, values are 0-32-64-96 or 0-64-20-84
pah
Sehr schön, und den Chip Type? Wie gebe ich den da an? Oder spielt der keine Rolle mehr?
Und Symbolersetzungen geht das jetzt auch über Attribute?
Gruß
Daniel
Na, was _hast_ Du denn manuell geändert ? So lange Du nur nach der Geometrie verlangt hast, habe ich eben nur die in ein Attribut eingebaut.
LG
pah
Na ich hatte mal das geschrieben:
Zitat von: ext23 am 10 März 2016, 12:16:31
Wegen dem LCD, auch die Zeichenersetzung über attribute wäre eine feine Sache. Hier meine Anpassungen:
my $lcdcontroller = "HD44780";
my $lcdlines = 4;
my $lcdchars = 20;
#my @lcdpage = (0,32,64,96);
my @lcdpage = (0,64,20,84);
#-- replace umlaut chars for special codepage
$msg =~ s/ä/\xE1/g;
$msg =~ s/ö/\xEF/g;
$msg =~ s/ü/\xF5/g;
$msg =~ s/Ü/\x03/g;
$msg =~ s/Ö/\x02/g;
$msg =~ s/Ä/\x01/g;
$msg =~ s/ß/\xE2/g;
$msg =~ s/°/\xDF/g;
/Daniel
Viele Grüße
Daniel
Ok, mal sehen, kann ich evtl. noch nachziehen als Attribute. Dauert aber noch ein paar Tage, busy im Moment
LG
pah
Morgen,
ich habe noch ein Problem mit dem LCD Board. Irgendwie kommt es vor, dass meine gesendeten GPIO Port Werte manchmal nicht ankommen. Wie schaut dein Modul da aus, prüfst du nach dem Setzen die Werte der GPIO Ports nochmal ab ob die richtig gesetzt sind? Ich lass die durch Notifys setzen. Ich frage nur nach, es kann auch sein das mein Fehler eventuell an anderer Stelle zu suchen ist. Aber eigentlich hatte ich nichts weiter geändert. Und jetzt ist es schon mehrmals passiert, dass Falsche Werte auf dem LCD Board ankommen. Das LCD ab sich ist davon aber nicht betroffen, komischerweise...
Gruß
Daniel
Muss ich prüfen.
LG
pah
Bitte die Probleme mit OWLCD hier noch einmal posten:
https://forum.fhem.de/index.php/topic,51642.0.html
LG
pah