Neuartiges 1-Wire Interface

Begonnen von Prof. Dr. Peter Henning, 18 Januar 2014, 21:00:45

Vorheriges Thema - Nächstes Thema

ntruchsess

vermutlich muss man mit sowas leben, da das Timing zwischen dem OWX und dem DS2480 wegen der Netzwerkanbindung nicht mehr stabil ist. OWX hat ja keinen Einfluss darauf, wann die Netzwerkpackete tatsächlich rausgehen (und ankommen). Leider kann man dem DS2480 nicht einfach die komplette Bytefolge (reset + Geräteauswahl + Kommando) in einem Rutsch schicken, der ist darauf angewiesen, dass der Sender die Kommandos jeweils zur richtigen Zeit schickt.
while (!asleep()) {sheep++};

Tobias

Seit gestern sind alle bestellten Platinen raus (bis auf A.Bauer). Ihr solltet also Eure Teile spätestens heute in der Hand halten können.
Für alle die beim Löten Probleme haben, auf der Zeichnung unten seht Ihr wo die jeweiligen Pin1 liegen ;)

Für alle anderen: ich habe hier noch Platinen. Wer welche haben möchte: PM an mich.
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

eldrik

Hi,

folgendes ist mir bisher bei der Verwendung des Interfaces (RC-Glied ist auch vorhanden) mit OWX und OWServer aufgefallen,

OWServer:

bei Verwendung von socat in Verbindung mit OWServer (nonblocking aus) wird fhem quasi ausgebremst, es entstehen waits von bis zu 30 Sek. (gemessen mit Perfmon), mit aktiven nonblocking belaufen sich die waits immer noch auf bis zu 20 sek. ich habe an diesem Bus derzeit folgende Sensoren hängen
4 x DS1820B mit 60 sek Abfrageintervall
3 x DS2413 mit 300 sek Abfrageinterval
2x DS2408 mit 1 sek Abfrageintervall
2x DS2450 mit 120 sek Abfrageintervall
1x DS2423 (Dougiecounter) Abfrageintervall 300 sek

Ich weiß nicht ob es an dem FHEM Modul oder vl. bereits an der Basis, dem OS OWServer liegt, kann ich irgendetwas zu beisteuern, um dies näher beleuchten zu können?

Mit dem bisherigen Konstrukt (Bus + Abfrageintervall + OWServer) in Verbindung mit einem Raspberry und der 1Wire Huckepackplatine von Uwe per I2C Interface habe ich diese Probleme nicht.

OWX:

Bei Verwendung von socat in Verbindung mit OWX scheint es diese Probleme nicht zu geben (Version die über FHEM ausgeliefert wird), FHEM reagiert normal und die Sensoren werden auch soweit zuverlässig abgefragt (speziell die 1 Sek Intervalle).

Ich müsste mein jetziges Setup komplett auf OWX umbauen, um zu schauen ob das Gesamtkonstrukt (at, notifys, Reaktionszeiten etc.) stabil läuft, das wird noch eine Weile dauern.

Gruß
Jens

justme1968

wenn du OWServer verwenden möchtest wäre es als erstes wichtig genau zu schauen wo die verzögerung her kommt.

OWServer arbeitet prinzipiell synchron und blockierend. auch mit nonblocking. damit wird nur verhindert das fhem komplett stehen bleibt wenn die owfs abfrage blockiert. OWServer wirklich asynchron zu machen habe ich zwar immer noch vor aber das ist eine ziemlich umstellung weil OWDevice nicht darauf vorberietet ist das die antworten asynchron kommen.

aber zurück zu deinen verzögerungen: in der aktuellen version ist das eigentlich können mit nonblocking keine 20 sekunden auf einen schlag mehr zusammenkommen. das select wartet 4 sekunden und der internal timer der den geforkten prozess killt  6 sekunden. d.h. nach 4 sekunden kommt jedes read ohne ergebnis zurück und den 6 sekunden siehst du im log das etwas gekillt wurde. wenn das nicht so ist stimmt noch irgend etwas anderes nicht. wenn wirklich das reine lesen 20 sekunden dauert würde OWDevice im nonblocking fall keine werte mehr bekommen und du hast im log 'OWServer: read timeout for child ...'. meldungen.

in OWDevice gibt es in OWDevice_ReadValue ein paar auskommentierte zeilen (drei mal 'my ...' und ein mal 'Debug ...' um genau zu loggen wie lange im read gewartet wurde. dort siehst du dann auch ob tatsächlich ein wert gelesen wurde.

das betrifft alles die eigentliche abfrage einzelner readings zur laufzeit. während dem start und der initialisierung kann es durchaus noch zu längeren wartezeiten kommen.

steht in NR_READ_FAILED oder LAST_READ_FAILED etwas (natürlich nur im nonblocking fall) ?

hast du mal direkt mit owhttp geschaut wie lange es dort dauert einzelne werte auszulesen?

siehst du im log mehr wenn du für das OWServer device verbose auf 5 setzt ?

ich hab (noch) kein solches interface und kann leider nicht selber schauen was es ist. aber wenn du versuchst für mich etwas zu debuggen versuche ich gerne etwas rauszufinden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

eldrik

wenn ich wieder zu Hause bin werde ich die entsprechenden Zeilen auskommentieren und kann dir das Log dann gerne zukommen lassen.

Den anderen Anregungen werde ich auch nachgehen.

Danke und Gruß
Jens

marc2

Hallo Tobias !

Zitat von: Tobias am 04 Februar 2014, 13:05:39
Aber Platinen für das ChinaTeil kann noch ne ganze Weile dauern.... Voraussetzung ist natürlich das er genauso reagiert wie der von Kristech

Wenn Du wirklich noch eine Platinenvariante für das ChinaTeil (LAN) planen solltest, fände ich es super, wenn auf der Platine noch ein DC/DC Wandler  vorgesehen werden könnte, damit man das ganze auch direkt mit höheren Spannungen als 5V  versorgen kann. Könnte man ja - wenn nicht benötigt - überbrücken. Ich habe z.B. nur 12V im Schaltschrank, und das schöne aufgeräumte Modul dann noch mit einer zusätzlichen Lochrasterplatine zu verschandeln, wäre suboptimal. Ich habe bisher sehr gute Erfahrungen mit LC78 Serie von GAPTEC gemacht.

Gruß, Marc 

Tobias

Werde es mir merken. Ich benutze hier Tracepower den TGS 1-2450. Geht von 7-36V

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

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

Prof. Dr. Peter Henning

Ich habe jetzt einen sehr schönen Wandler 5V -> 3,3 V mit dabei, die Sache läuft wunderbar stabil. Plan poste ich demnächst.

LG

pah

UweH

@pah: Wie lange hat bei Dir das rebooten des WiFi-Moduls nach dem Ändern der Einstellungen gedauert? Der rödelt hier schon eine gefühlte Ewigkeit...  >:(

Prof. Dr. Peter Henning


UweH

Dann mache ich was falsch. Ich krieg das Teil nicht zu fassen. Entweder konfiguriere ich ihn falsch (aber nach Deinen Bildern und denen der Anleitung "eigentlich" nicht) oder ich bin zu dämlich, das Ding im WLAN zu finden (wahrscheinlicher...).

Peter_64

Hallo,
bin neu hier und brauche Hilfe bei der Installation von der Platine von Tobias (Kristech)

Hab jetzt schon wieder eine Nacht hinter mir und bekomme es nicht zum laufen. Fhem hängt sich immer auf, das log kommt bis hier hin.
Das vmodem1 ist dann auch auf der RPI - Konsole weg. Eigentlich macht er alles richtig, erkennt noch die zwei Temp - Fühler dann ende. Hoffe es kann jemand helfen...danke

2014.03.21 23:27:12 1: Including fhem.cfg
2014.03.21 23:27:14 1: OWX: Serial device /dev/vmodem1 defined
2014.03.21 23:27:16 1: OWX: 1-Wire bus Modem1: interface master DS2480 detected for the first time
2014.03.21 23:27:20 1: Including ./log/fhem.save
2014.03.21 23:27:20 1: usb create starting
2014.03.21 23:27:48 1: usb create end
2014.03.21 23:27:55 0: Server started with 38 defined entities (version $Id: fhem.pl 5197 2014-03-10 21:07:30Z rudolfkoenig $
2014.03.21 23:27:59 1: OWX: 1-Wire devices found on bus Modem1 (OWX_28_03E8C3040000,OWX_28_E3F03F050000,OWX_01_DE16C6160000)


Peter_64

Nachtrag.. nach einem erneuten Start (reboot RPI) folgender Log
2014.03.21 23:49:16 1: Including fhem.cfg
2014.03.21 23:49:18 1: OWX: Serial device /dev/vmodem1 defined
2014.03.21 23:49:22 1: OWX: 1-Wire bus Modem1: interface not found, answer was 0x16 0x44 0x5a 0x00
2014.03.21 23:49:47 1: OWX: 1-Wire bus Modem1: interface not found, answer was 0x16 0x44 0x5a 0x00

das geht immer so , mal erkennt fhem mehr mal weniger !!!

eldrik

Hi Peter,

Bilder vom Aufbau?

Verwendest du die 90 Grad gewinkelte Stiftleiste von Tobias?

Hast du eine stabile Netzwerkverbindung zwischen Kristech und dem Rpi?

Greetz
Eldrik

Peter_64

Hi Eldrik,
ja ich habe die Version 90 Grad, wobei ich noch ohne den Winkel direkt aufgesteckt habe, also gute Verbindung. Das Netzwerk ist stabil und konnte ohne Probleme installiert werden, feste IP, 9600 usw., alles in Ordnung ...(denke ich).
Die Platine habe ich mit und ohne RC - Glied versucht zum laufen zu bringen, ohne Erfolg. Habe auch schon verschiedene Stromquellen 5 Volt , 6 Volt versucht und hier schon Unterschiede bemerkt, was das Log betrifft ,  könnte es daran evtl. liegen ?, Zur Zeit habe ich den USB angezapft 5 Volt, bzw. wenn er angeschlossen ist habe ich noch 4,8 Volt  für die Platine ? keine Ahnung ob das eine Fehlerquelle sein kann. Habe mir dann auch noch die von pah eigenen OWX heruntergeladen leider auch kein Erfolg.