OWX asynchron überarbeitet

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

Vorheriges Thema - Nächstes Thema

ergerd

Dann habe ich mein Problem in einem falschen Zusammenhang gesehen.
Nichts für ungut.
Grüße
Rainer
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Prof. Dr. Peter Henning

Guten Morgen,

Hast Du die Sachen schon auf dec ICe-Repository eingecheckt ?

LG

pah

ntruchsess

nein, mit Deinem svn-umzug hat es meinen Git-mirror 'abgehängt', ich schaue mal, wie man das wieder synchron bekomme. Die Git-svn tools können leider keinen 'svn relocate' :-(

Gruß,

Norbert

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

Prof. Dr. Peter Henning

Oh übel.

Der Umzug ist nur ein logischer Umzug - der Server ist gehackt worden, das erforderte eine Neuorganisation der Virtual Hosts. Ist leider weder rückgängig zu machen, noch zu umgehen.

LG

pah


ntruchsess

na so schlimm ist es auch nicht, Du hast im branch 'async' ja nichts commited, ich habe grade den aktuellen Stand grade hochgeladen. Hier habe ich gestern was dazu geschrieben, was eigentlich in diesen Thread gehört hätte...

Gruß,

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

Tobias

Hi,
gibt es eigentlich hier neue Neuigkeiten?
Ich bin schon ganz "heiß" auf die Erweiterung da bei meiner fhem-installation mit 35 Devices die Verzögerung gut merkbar ist.
 OWAD            : 5
  OWCOUNT         : 1
  OWMULTI         : 1
  OWSWITCH        : 14
  OWTHERM         : 12
  OWX             : 2

  OWAD            : DS2450
  OWCOUNT         : DS2423
  OWMULTI         : DS2438
  OWSWITCH        : DS2406,DS2408,DS2413
  OWTHERM         : DS1822
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 schrieb am Fr, 30 August 2013 19:40gibt es eigentlich hier neue Neuigkeiten?

im Prinzip ist der Stand so, wie bei meinem letzten Beitrag:

mit einem DS2480-basiertem Busmaster funktioniert es bei eigentlich prima (vorrausgesetzt, dass die verwendete Plattform perl-threads unterstützt). Mit einem passiven seriellen Interface sollte es eigentlich genauso laufen, das habe ich aber (mangels Interface) nicht getestet. Über Feedback, ob sich der Stand 'im Feld' bewährt, würde ich mich sehr freuen.

Mit einem Arduino gehen die Devices im Prinzip auch, bei mir gibt es aber Probleme, sobald ein paar mehr Devices am Bus hängen. Mir ist nicht ganz klar, woran das genau liegt - die OneWire-library, die arduinoseitig verwendet wird, kommt da eventuell nicht mit dem Timing klar. Das hat nichts mit der asynchronen Überarbeitung zu tun, das ist mit der 'klassischen', synchronen Implementierung genauso. Vieleicht liegt es auch einfach daran, dass der Pullup über einen einfachen Wiederstand am 1-Wire-bus zu langsam passiert, wenn mehr Devices dranhängen. Von der Softwareseite her ist das schwer zu debuggen. Der Plan ist, in die Firmata Unterstützung für einen DS2482 I2C-Busmaster einzubauen. Damit könnte man den Arduino dann z.B. als 1-Wire/IP-Gateway einsetzen. Nur habe ich im Moment erst mal eine andere 'größere' Baustelle (echte TCP/IP-unterstützung für ENC28J60-arduino-ethernet-shields). Wobei - wenn letzteres richtig läuft, dann kommt das natürlich all denen zu Gute, die z.B. den Arduino Nano über Netzwerk verwenden wollen (für den Nano gibt's keine WIZ5100-basierten Shields)...

Gruß,

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

Tobias

Ok,
bei Neuigkeiten meinte ich den Stand der Überlegung alles ins SVN zu commiten bzw der Stand der Stabilität.

Dazu noch eine Frage: ist da auch schon der automatische Reconnect bei kurzzeitiger USB-Unterbrechung mit drin?
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

ins SVN commited wird, wenn es von den Testern für gut befunden ist. (Ein bischen ein Henne/Ei Problem, wenn alle nur darauf warten, das es stabil und fertig ist...) Wobei ich vermutlich erst in ca. 2 Wochen wieder Zeit habe mich drum zu kümmern (bin seit Anfang August bis inkl. nächstes WE noch in Urlaub und die 1-Wire-hardware liegt zu Hause).

Gruß,

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

Prof. Dr. Peter Henning

Ich muss zugeben, dass ich den Test und die konsensuelle Freigabe seit Monaten vor mir herschiebe.
Zuviel zu tun im Hauptjob - und derzeit noch im Urlaub. Mal sehen, imOktoberkönnte das was werden.

LG

pah

Tobias

Kurze Frage hierzu: habt ihr zufällig auch das automatische Reconnect eingebaut?

Wenn ich zb. den USB-Stecker ziehe an dem der 1wireBusmaster hängt, muss ich immer fhem neu starten :(
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

Tobias

Zitat von: Tobias am 17 September 2013, 13:20:12
Kurze Frage hierzu: habt ihr zufällig auch das automatische Reconnect eingebaut?
Wenn ich zb. den USB-Stecker ziehe an dem der 1wireBusmaster hängt, muss ich immer fhem neu starten :(
Nochmal kurze Nachfrage hierzu. Sehe ich zZ bie mir als größtes Problem...
Äußert sich dann im Log so:OWX: Reset failure on bus 1wireMp00202
oder so:Use of uninitialized value $m in addition (+) at ./FHEM/00_OWX.pm line 1457.
Use of uninitialized value $string_part in concatenation (.) or string at ./FHEM/00_OWX.pm line 1459.
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 15 Oktober 2013, 07:52:27
Nochmal kurze Nachfrage hierzu. Sehe ich zZ bie mir als größtes Problem...
Äußert sich dann im Log so:OWX: Reset failure on bus 1wireMp00202
oder so:Use of uninitialized value $m in addition (+) at ./FHEM/00_OWX.pm line 1457.
Use of uninitialized value $string_part in concatenation (.) or string at ./FHEM/00_OWX.pm line 1459.


hab grade ein größeres Projekt erfolgreich zuende implementiert (Arduino-Ethernet library für ENC28J60 boards, kann jetzt auch im Ethernetfirmata-sketch verwendet werden), jetzt sollte wieder Zeit sein mich um das asynchrone OWX zu kümmern. Viel fehlt da nicht mehr um das stabil zu kriegen.

Gruß,

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

Tobias

Hallo Norbert,

das hört sich gut an... wäre auf jedenfalls echt toll wenn diese dumme reconnect-Sache implementiert wird :) :)
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

Joachim

Moin Norbert,

nachdem ich mich heute auch mal gewagt habe, die asynchrone Variante zu nutzen,

kurze erste Rückmeldung:
geht mit Raspberry und LinkUSBi, überlebt aber keinen reboot.
gibt einen CRC-Fehler nach dem reboot und es werden  nur noch die
Zitat2013-12-08 12:31:42.500 OWTHERM OWX_28_295FBA030000 PRESENT: 1
ausgelesen.
erst ein neues
Zitatget <name> devices
sorgt wieder dafür, dass auch die restlichen Werte ausgelesen werden.

Auszug fhem.cfg:
Zitat
define 1_Wire OWX /dev/ttyUSB1
attr 1_Wire room OWX

define OWX_28_295FBA030000 OWTHERM DS18B20 295FBA030000
attr OWX_28_295FBA030000 IODev 1_Wire
attr OWX_28_295FBA030000 model DS1822
attr OWX_28_295FBA030000 room OWX
attr OWX_28_295FBA030000 tempHigh 25
attr OWX_28_295FBA030000 tempLow 10
Auszug wenn es nicht geht aus fhem.log:
Zitat2013.12.08 12:32:13.553 5: Triggering OWX_28_295FBA030000 (1 changes)
2013.12.08 12:32:13.556 5: Notify loop for OWX_28_295FBA030000 PRESENT: 1
2013.12.08 12:32:13.708 4: OWX_AfterExecute [28.295FBA030000.00]: invalid CRC
Auszug wenn es geht aus fhem.log:
Zitat2013.12.08 13:03:16.679 5: Triggering OWX_28_295FBA030000 (1 changes)
2013.12.08 13:03:16.680 5: Notify loop for OWX_28_295FBA030000 PRESENT: 1
2013.12.08 13:03:17.002 3: temperatur 17.3125
2013.12.08 13:03:17.005 5: Triggering OWX_28_295FBA030000 (2 changes)
2013.12.08 13:03:17.006 5: Notify loop for OWX_28_295FBA030000 temperature: 17.3125
2013.12.08 13:03:17.020 5: Triggering OWX_28_295FBA030000 (1 changes)
2013.12.08 13:03:17.022 5: Notify loop for OWX_28_295FBA030000 PRESENT: 1

Irgendwo geht die CRC-Prüfsumme baden:
Zitat2013.12.08 12:32:00.236 5: OWX_SER::Search: new device found 28.295FBA030000.AA

gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232