OWX New Generation

Begonnen von Prof. Dr. Peter Henning, 01 April 2016, 06:08:20

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

@ext23: Anbei eine Version, in der ein zusätzliches Attribut lcdcontroller gesetzt werden kann.

Codepage richtet sich nach dem controller, bitte mal testen, ob das so einfacher ist.

LG

pah

ext23

#16
  my $attlist       = "IODev do_not_notify:0,1 showtime:0,1 ".
                      "lcdgeometry:0-32-64-96,0-64-20-84 lcdcontroller:KS0073,HD44780 ".
                      $readingFnAttributes;

Hinter das HD44780 muss ein Leerzeichen rein, sonst hat der das reading-on-change-event rann geklatscht.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Prof. Dr. Peter Henning

Nu ja. Leerzeichen werden ignoriert. Sonst wie gewünscht ?

Thema GPIO: Geht bei mir problemlos, habe auch keinen HD44780 zum Testen.

LG

pah

ext23

Zitat von: Prof. Dr. Peter Henning am 04 April 2016, 11:44:06
Thema GPIO: Geht bei mir problemlos, habe auch keinen HD44780 zum Testen.
pah

Komisch, das passiert bei mir auch so sporadisch, naja ich checke nochmal ob ich irgendwo noch ein Fehler habe der zufällig die Werte neu setzt. Aber dann müsste doch da ein system hinter sein mhh naja

Ansonsten passt das Modul so, also ich finde es gut so.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

cwagner

Guten Tag, im Dauerbetrieb fiel mir nun doch eine Anomalie auf, die ich sofort beenden kann, wenn ich die alte 21_OWSWITCH (V. 5.22) wieder aktiviere.

Beim 2. und weiteren Schalten eines Kanals meines 8-Port-Switch (z.B. A, angesprochen als "Brenner") werden weitere Kanäle geschaltet. Ich füge mal eine kurze Session ein :

2016-04-04 19:03:37 OWSWITCH Switch_Heizkeller Brenner: ON
2016-04-04 19:03:37 OWSWITCH Switch_Heizkeller Brenner: ON M-: OFF M+: OFF HWR: OFF EWT: ON F: OFF K_Pump: OFF 3W: OFF
2016-04-04 19:12:52 OWSWITCH Switch_Heizkeller Brenner: OFF
2016-04-04 19:12:52 OWSWITCH Switch_Heizkeller Brenner: OFF M-: OFF M+: OFF HWR: OFF EWT: ON F: OFF K_Pump: OFF 3W: OFF
2016-04-04 19:13:53 OWSWITCH Switch_Heizkeller Brenner: ON
2016-04-04 19:13:53 OWSWITCH Switch_Heizkeller HWR: ON

2016-04-04 19:13:53 OWSWITCH Switch_Heizkeller Brenner: ON M-: ON M+: ON HWR: ON EWT: OFF F: OFF K_Pump: OFF 3W: OFF

2016-04-04 19:14:53 OWSWITCH Switch_Heizkeller Brenner: OFF
2016-04-04 19:14:53 OWSWITCH Switch_Heizkeller Brenner: OFF M-: ON M+: ON HWR: ON EWT: OFF F: OFF K_Pump: OFF 3W: OFF
2016-04-04 19:15:53 OWSWITCH Switch_Heizkeller Brenner: ON
2016-04-04 19:15:53 OWSWITCH Switch_Heizkeller Brenner: ON M-: OFF M+: ON HWR: ON EWT: OFF F: OFF K_Pump: OFF 3W: OFF

In der mit Leerzeilen markierten Zeile ist die  gleichzeitige Aktivierung beider Mischers-Ports (M- und M+)  und der Tausch des Schaltzustandes von HWR und EWT erstaunlich, es gibt kein Event und mein eigener Code ist so geschrieben, dass er nur den einen oder den anderen Port M-/M+ (jeweils für 1 Sekunde) schaltet.

Bin einigermaßen ratlos. Gerne würde ich hilfreichere Infos ermitteln...

Herzliche Grüße

Christian

[Post zum Thema von heute morgen gelöscht weil leider noch unspezifischer]
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

Prof. Dr. Peter Henning

Hm. Müsste ich erst einmal im Detail die binären GPIO-Werte übersetzen. Vlt. die mal periodisch abfragen ?

LG

pah

det.

Hallo pah,
das wird sich um den Effekt handeln, den ich hier [size=78%]https://forum.fhem.de/index.php/topic,50412.msg431415.html#msg431415[/size] angefragt hatte. Probier bitte einfach mal aus - mehrmals hintereinander OFF eingeben und schaun was passiert.
LG
det.

cwagner

Moin, Pah & det,

das kann ich nun nach einer Nacht bestätigen und beliebig reproduzieren: Beispielsweise ist Kanal A off und E on.
Nun wird noch einmal ein set <device> output A off gesendet und nun geht A an und die nächsten drei. Dafür geht dann E aus. Ich habe jetzt 12 Stunden den GPIO-Zustand alle 30 Sekunden protokolliert - solange kein Port geschaltet wird, passiert nichts. Sobald aber ein Schaltzustand wiederholt wird, gibt es durcheinander:

Hier wurde ein Brenner OFF gesandt - ergebnis ist ein Brenner, M-, M+ und HWR ON. EWT wird OFF
2016.04.05 08:54:59 3: TEST_Switch: OWSWITCH: Switch_Heizkeller.gpio => Brenner: OFF M-: OFF M+: OFF HWR: OFF EWT: ON F: OFF K_Pump: OFF 3W: OFF
2016.04.05 08:55:29 3: TEST_Switch: OWSWITCH: Switch_Heizkeller.gpio => Brenner: ON M-: ON M+: ON HWR: ON EWT: OFF F: OFF K_Pump: OFF 3W: OFF


Herzliche Grüße

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

Prof. Dr. Peter Henning

Dann scheint es noch irgendeine Inkonsistenz zu geben. Wenn man nämlich nur einzelne Outputs schaltet, holt sich die Kiste erst den Gesamtzustand, berechnet das neue gpio und schreibt das zurück.

Ich habe in das anliegende OWXSWITCH (Version 6.01beta) eine zusätzliche Debugausgabe eingebaut, wäre dankbar fürs Testen, da ich im Moment ziemlich unter Wasser bin wegen verschiedener Deadlines.

LG

pah

cwagner

Hallo pah,

das passte, war gerade etwas Zeit und so habe ich die Debug-Fassung gleich probiert: Das Ergebnis entspricht meiner Beschreibung - hier die Log-Infos (ich habe ledig Kanal A und E geschaltet und wenn "zuviele" Ports geschaltet wurden, habe ich mit GPIO 255 wieder zurückgesetzt auf alle AUS.

2016.04.05 16:49:15 1: DEBUGGING OWXNG : After reading old gpio as 239, we are setting a new gpio as 237
2016.04.05 16:49:18 1: DEBUGGING OWXNG : After reading old gpio as 237, we are setting a new gpio as 245
2016.04.05 16:50:00 1: DEBUGGING OWXNG : After reading old gpio as 245, we are setting a new gpio as 247
2016.04.05 16:51:39 1: DEBUGGING OWXNG : After reading old gpio as 247, we are setting a new gpio as 248
2016.04.05 16:51:54 1: DEBUGGING OWXNG : After reading old gpio as 248, we are setting a new gpio as 249
2016.04.05 16:51:56 1: DEBUGGING OWXNG : After reading old gpio as 249, we are setting a new gpio as 250
2016.04.05 16:52:34 1: DEBUGGING OWXNG : After reading old gpio as 250, we are setting a new gpio as 251
2016.04.05 16:55:11 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 254
2016.04.05 16:55:21 1: DEBUGGING OWXNG : After reading old gpio as 254, we are setting a new gpio as 255
2016.04.05 16:55:33 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 256
2016.04.05 16:55:42 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 256
2016.04.05 16:56:02 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 256
2016.04.05 16:56:15 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 239
2016.04.05 16:56:33 1: DEBUGGING OWXNG : After reading old gpio as 239, we are setting a new gpio as 240
2016.04.05 16:56:49 1: DEBUGGING OWXNG : After reading old gpio as 240, we are setting a new gpio as 241
2016.04.05 16:57:15 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 239
2016.04.05 16:57:45 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 256
2016.04.05 16:58:01 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 239
2016.04.05 16:58:08 1: DEBUGGING OWXNG : After reading old gpio as 239, we are setting a new gpio as 239
2016.04.05 16:58:10 1: DEBUGGING OWXNG : After reading old gpio as 239, we are setting a new gpio as 240
2016.04.05 16:58:25 1: DEBUGGING OWXNG : After reading old gpio as 240, we are setting a new gpio as 241
2016.04.05 16:58:37 1: DEBUGGING OWXNG : After reading old gpio as 241, we are setting a new gpio as 242
2016.04.05 16:58:57 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 239


Danke für Dein Engagement trotz der zeitlichen Beanspruchung

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

det.

Hallo pah,
auch gleich getestet mit einem 2406 - Szenario: alle beide Kanäle sind auf off und ich klicke 4x hintereinander output A off :
2016.04.05 18:00:52 1: DEBUGGING OWXNG : After reading old gpio as 2, we are setting a new gpio as 3
2016.04.05 18:00:50 1: DEBUGGING OWXNG : After reading old gpio as 1, we are setting a new gpio as 2
2016.04.05 18:00:47 1: DEBUGGING OWXNG : After reading old gpio as 0, we are setting a new gpio as 1
2016.04.05 18:00:44 1: DEBUGGING OWXNG : After reading old gpio as 3, we are setting a new gpio as 4

bei mehfachem output A oder B on hintereinander passiert hingegen nichts unerwartetes :
2016.04.05 18:05:19 1: DEBUGGING OWXNG : After reading old gpio as 0, we are setting a new gpio as 0
2016.04.05 18:05:17 1: DEBUGGING OWXNG : After reading old gpio as 0, we are setting a new gpio as 0
2016.04.05 18:05:15 1: DEBUGGING OWXNG : After reading old gpio as 0, we are setting a new gpio as 0
2016.04.05 18:05:12 1: DEBUGGING OWXNG : After reading old gpio as 2, we are setting a new gpio as 0
2016.04.05 18:05:10 1: DEBUGGING OWXNG : After reading old gpio as 2, we are setting a new gpio as 2
2016.04.05 18:05:08 1: DEBUGGING OWXNG : After reading old gpio as 2, we are setting a new gpio as 2
2016.04.05 18:05:04 1: DEBUGGING OWXNG : After reading old gpio as 2, we are setting a new gpio as 2

Da geht A bzw B auf on und bleibt so, egal wie oft man den Schaltbefehl wiederholt.
LG
det.

UweH

Ein "...output A on" bei einem DS2408 ergibt im Log:
2016.04.05 19:30:08 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 254

Danach "...output A off":
2016.04.05 19:30:14 1: DEBUGGING OWXNG : After reading old gpio as 254, we are setting a new gpio as 255

Und noch ein "...output A off":
2016.04.05 19:30:20 1: DEBUGGING OWXNG : After reading old gpio as 255, we are setting a new gpio as 256

und
OWSWITCH: Could not set device DS2408, reason: Wide character in send at /usr/lib/i386-linux-gnu/perl/5.20/IO/Socket.pm line 284.

Gruß
Uwe

Prof. Dr. Peter Henning

#27
OK, das war ein echter Fehler (man sollte seine Boole'sche Algebra beherrschen...).

Anbei die gefixte Version, getestet mit allen drei Schalterchips. Hier angehängt noch als Beta, wenn es keine weiteren Irrtümer gibt, wird das heute vormittag noch eingecheckt.

LG

pah

Prof. Dr. Peter Henning

Noch zwei Fixes:

OWMULTI - Dokumentation von "raw" repariert

OWCOUNT - Überschreiben des "model"-Attributs verhindert. Gibt jetzt nur einen Log-Eintrag, falls das model nicht stimmt.

Bitte um Tests durch die Betroffenen.

LG

pah

UweH

"Mein" Problem hat sich erledigt, vielen Dank

Gruß
Uwe