1-wire bus am Firmata Device liefert kein device am Port

Begonnen von devien, 12 Januar 2018, 20:50:34

Vorheriges Thema - Nächstes Thema

devien

Zitat von: dirigent am 13 Januar 2018, 22:31:21
Hast du es mal an einem Port unter 20 versucht?
nein hab ich noch nicht, da ich mir die Kommunikations Ports in Reserver halten möchte (eigentlich) theoretisch nurtzt das ethernet schield nur die Pins 10-13, 14 bis 21 sollten also frei sein, aber es ist nicht mein Wunsch die unteren Ports zu nutzen, testen kann ichs aber mal.
FHEM + UniPi + Arduino = gute Lösung

devien

so, nun habe ich es an PINs 19 - 21 versucht, unterhalb von 21 scheint es zu funktionieren.

Internals:
   ALARMED    0
   ASYNCHRONOUS 0
   CFGFN      FHEM/arduino.cfg
   DEF        Arduino_03:20
   DeviceName Arduino_03:20
   FRM_OWX_CORRELATIONID 0
   HWDEVICE   Arduino_03
   INITDONE   1
   INTERFACE  firmata
   IODev      Arduino_03
   NAME       Ard03_1W_bb
   NR         169
   PARTIAL   
   PIN        20
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   interval   300
   timeout    2
   version    7.05
   DEVHASH:
     Ard03_1W_bb Busmaster
     OWX_26_728E06020000 26.728E06020000.B8
   DEVS:
     26.728E06020000.B8
   FRM_OWX_REPLIES:
Attributes:
   room       Arduino


und
Internals:
   ALARMED    0
   ASYNCHRONOUS 0
   CFGFN      FHEM/arduino.cfg
   DEF        Arduino_03:21
   DeviceName Arduino_03:21
   FRM_OWX_CORRELATIONID 6
   FRM_OWX_CURRDEV 26.7A8F06020000.D4
   HWDEVICE   Arduino_03
   INITDONE   1
   INTERFACE  firmata
   IODev      Arduino_03
   NAME       Ard03_1W_cc
   NR         171
   PARTIAL   
   PIN        21
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   interval   300
   timeout    2
   version    7.05
   DEVHASH:
     Ard03_1W_cc Busmaster
     OWX_26_7A8F06020000 26.7A8F06020000.D4
   DEVS:
     26.7A8F06020000.D4
   FRM_OWX_REPLIES:
     26.7A8F06020000.D4 ���������
   FRM_OWX_REQUESTS:
     0:
       device     26.7A8F06020000.D4
       command:
         id         0
         read       0.01
         select:
           crc        212
           family     38
           identity:
             122
             143
             6
             2
             0
             0
         write:
           180
     1:
       device     26.7A8F06020000.D4
       command:
         id         1
         read       0.02
         select:
           crc        212
           family     38
           identity:
             122
             143
             6
             2
             0
             0
         write:
           184
           0
     3:
       device     26.7A8F06020000.D4
       command:
         id         3
         read       0.01
         select:
           crc        212
           family     38
           identity:
             122
             143
             6
             2
             0
             0
         write:
           180
     4:
       device     26.7A8F06020000.D4
       command:
         id         4
         read       0.02
         select:
           crc        212
           family     38
           identity:
             122
             143
             6
             2
             0
             0
         write:
           184
           0
Attributes:
   room       Arduino


man sieht aber auch hier einen Unterschied zwischen den beiden PINS welcher offenbar im LOG angezeigt wird:
2018.01.14 10:39:05 1: OWXMULTI_BinValues:  OWX_26_7A8F06020000: conversion not complete or data invalid in context ds2438.getvdd 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff

Nun bleiben mir also 2 Fragen,
1. warum funktioniert es nur unterhalb von PIN21?
2. kann ich die Fehlermeldung im Log beheben?
FHEM + UniPi + Arduino = gute Lösung

JensS

Geht doch. :)
Die Begrenzung der möglichen PINs muss sich mal ein Entwickler ausgedacht haben...
Zitat2018.01.13 13:22:47 1: Error: >Arduino_03:22< has no TYPE, but following keys: ><
kannst du ignorieren.
Zitat2018.01.14 10:39:05 1: OWXMULTI_BinValues:  OWX_26_7A8F06020000: conversion not complete or data invalid in context ds2438.getvdd 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
ist vermutlich ein Kontaktfehler.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

devien

Zitat von: dirigent am 14 Januar 2018, 11:48:06
Geht doch. :)
Die Begrenzung der möglichen PINs muss sich mal ein Entwickler ausgedacht haben
eine begrenzung und trotzdem werden die höheren PINs im Arduino device als 1 wire Ports angezeigt?
das scheint mir etwas inkonsequent
Zitat von: dirigent am 14 Januar 2018, 11:48:06
...kannst du ignorieren.ist vermutlich ein Kontaktfehler.
ein Kontaktfehler beim Physikalischen Anschluss?
FHEM + UniPi + Arduino = gute Lösung

JensS

#19
Ja und Ja.  8)
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

devien

hm, nun krieg ich meine Sensoren zwar angezeigt, aber die Einstufung als OWMulti ist unproduktiv.

Leider raucht mir FHEM jedes mal ab wenn ich die Sensoren als OWDevice definiere und

Internals:
   ALARMED    0
   ASYNCHRONOUS 0
   CFGFN      FHEM/arduino.cfg
   DEF        Arduino_03:20
   DeviceName Arduino_03:20
   FRM_OWX_CORRELATIONID 0
   HWDEVICE   Arduino_03
   INITDONE   1
   INTERFACE  firmata
   IODev      Arduino_03
   NAME       Ard03_1W_bb
   NR         167
   PARTIAL   
   PIN        20
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   interval   300
   timeout    2
   version    7.05
   DEVHASH:
     Ard03_1W_bb Busmaster
   DEVS:
   FRM_OWX_REPLIES:
Attributes:
   room       Arduino
[/code]
als IODevice setze...

die letzte Meldung im Log vorm Absturz lautet dann immer:2018.01.14 15:35:42 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/10_OWServer.pm line 387.
2018.01.14 15:35:42 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/10_OWServer.pm line 400.
2018.01.14 15:35:51 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/11_OWDevice.pm line 448.
Undefined subroutine &main:: called at ./FHEM/11_OWDevice.pm line 448.


FHEM + UniPi + Arduino = gute Lösung

JensS

Das liegt wohl daran, dass OWDevice zu OWServer gehört, du aber OWX nutzt.
ZitatDefiniert ein 1-Wire- Gerät. 1-Wire- Geräte werden anhand ihrer Adresse <address> definiert. Diese wird durch den zuvor eingerichteten OWServer bereitgestellt.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

devien

#22
Zitat von: dirigent am 14 Januar 2018, 18:28:02
Das liegt wohl daran, dass OWDevice zu OWServer gehört, du aber OWX nutzt.
Gruß Jens
klingt plausibel, aber da ich den Arduino über FRM angebunden hab kann ich nur OWX nehmen, welche alternative bleibt mir wenn OWMulti mir nicht mal die Temperatur vom Device ausgibt?

bzw wie komme ich zumindest an owg_val herran?

Internals:
   ASYNC      0
   CFGFN      FHEM/arduino.cfg
   DEF        DS2438 7A8F06020000
   ERRCOUNT   26
   ERRSTATE   1
   INTERVAL   300
   IODev      Ard_drei_bb
   NAME       OWX_26_7A8F06020000
   NOTIFYDEV  global
   NR         169
   NTFY_ORDER 50-OWX_26_7A8F06020000
   OW_FAMILY  26
   OW_ID      7A8F06020000
   PRESENT    0
   ROM_ID     26.7A8F06020000.D4
   STATE      initialized
   TYPE       OWMULTI
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1515944689.27011
           VALUE      initialized
   READINGS:
     2018-01-14 16:44:49   state           initialized
   owg_val:
     -0.00390625
     10.23
     10.23
     0.249755859375
Attributes:
   IODev      Ard_drei_bb
   model      DS2438
   room       OWX
FHEM + UniPi + Arduino = gute Lösung

JensS

Es gibt eine neue modifizierte 11_OWX_FRM.pmhttps://forum.fhem.de/index.php/topic,81104.msg748728.html#msg748728.
Lösche mal alle relevanten Einträge zu FRM, OWX und OWMulti aus der fhem.save und starte fhem neu. So konnte man OWTherm zum plaudern überreden.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

devien

hm,
OW Therm bietet mir aber höhstens die Chance die Temperaturwerte der Sensoren zu bekommen, VAD und VIS hingegen kriege ich darüber nicht. Ich nehme an das ich via OW Multi die Sensoren paralel abgefragt bekomme, eine doppelte Definition der Sensoren verursacht mir jedoch ein gewisses unbehagen.
Ich hege den Gedanken mir evt einen DS2482-100 an den Arduino zu hängen, aber kann ich damit dann per OW Server auf diesen zugreifen?
FHEM + UniPi + Arduino = gute Lösung

Prof. Dr. Peter Henning

Äh - wieso das denn ? Der DS2438 hat ein ganz anderes Kommunikationsprotokoll als ein DS18B20 (und Ähnliche).

Entweder OWTHERM, ODER OWMULTI.

LG

pah

devien

Zitat von: Prof. Dr. Peter Henning am 15 Januar 2018, 10:05:06
Äh - wieso das denn ? Der DS2438 hat ein ganz anderes Kommunikationsprotokoll als ein DS18B20 (und Ähnliche).

Entweder OWTHERM, ODER OWMULTI.

LG

pah
Weil OW Multi mir bei diesem Sensor nicht die Werte ausgibt die ich benötige (was OW Device zuvor jedoch am Raspberri selbst problemlos gemacht hat).
ganz zu schweigen das OWMulti mir ständig 2018.01.14 21:10:19 1: OWXMULTI_BinValues:  OWX_26_7A8F06020000: conversion not complete or data invalid in context ds2438.getvdd 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
beschert, obgleich ich die Verkabelung mehrfach auf sauberkeit geprüft und auch die Sensoren ausgetauscht habe.
FHEM + UniPi + Arduino = gute Lösung

Prof. Dr. Peter Henning

Kann nicht sein - wenn Mist empfangen wird, wird eben kein Wert berechnet.

Und die Vorstellung, dass man dann eben einfach OWTHERM an Stelle von OWMULTI verwendet, ist absurd.

Bei mir werkeln übrigens 8 verschiedene DS2438 mit OWMULTI ganz problemlos vor sich hin.

LG

pah

devien

Zitat von: Prof. Dr. Peter Henning am 15 Januar 2018, 10:26:11
Kann nicht sein - wenn Mist empfangen wird, wird eben kein Wert berechnet.

Und die Vorstellung, dass man dann eben einfach OWTHERM an Stelle von OWMULTI verwendet, ist absurd.

Bei mir werkeln übrigens 8 verschiedene DS2438 mit OWMULTI ganz problemlos vor sich hin.

LG

pah

ja, wie schon beschrieben würde mir OWTherm nicht zusagen wenn ich die beiden anderen Messwerte meiner Sensoren dadurch verliere.
habe bei mir https://www.unipi.technology/sedtronic-1-wire-sensor-p67?categoryId=3 im Einsatz, auf OWMulti geben die Internals:
   ASYNC      0
   CFGFN      FHEM/arduino.cfg
   DEF        DS2438 7A8F06020000
   ERRCOUNT   26
   ERRSTATE   1
   INTERVAL   300
   IODev      Ard_drei_bb
   NAME       OWX_26_7A8F06020000
   NOTIFYDEV  global
   NR         169
   NTFY_ORDER 50-OWX_26_7A8F06020000
   OW_FAMILY  26
   OW_ID      7A8F06020000
   PRESENT    0
   ROM_ID     26.7A8F06020000.D4
   STATE      initialized
   TYPE       OWMULTI
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1515944689.27011
           VALUE      initialized
   READINGS:
     2018-01-14 16:44:49   state           initialized
   owg_val:
     -0.00390625
     10.23
     10.23
     0.249755859375
Attributes:
   IODev      Ard_drei_bb
   model      DS2438
   room       OWX

aus. ich nehme einfach mal an das " owg_val"  2 der Werte ausgibt die ich benötige, nur eben nicht die Temperatur.....
FHEM + UniPi + Arduino = gute Lösung

Prof. Dr. Peter Henning

Rede ich chinesisch, oder wie ? Mit OWTHERM kann man keine DS2438 abfragen.

pah