OWX IODev

Begonnen von tbr, 10 Dezember 2017, 21:30:29

Vorheriges Thema - Nächstes Thema

tbr

Moin, ich habe ein Problem, dass bei jedem Save Config bei meinem OWX Device das IODev device hinzugefügt wird.

vorher:
#################firmata netzwerk wz
define FRM FRM 3030 global
attr FRM room 20_Wohnzimmer
define rc_sender FRM_RCOUT 5
attr rc_sender IODev FRM
define rc_receiver FRM_RCIN 3
attr rc_receiver IODev FRM


define WZ_FRM_D8 OWX FRM:8
attr WZ_FRM_D8 alias WZ_Temp_DS18B20
attr WZ_FRM_D8 interval 180
attr WZ_FRM_D8 room 20_Wohnzimmer


Dann wird die Config gespeichert und schwupp-di-wupp schleicht sich bei dem ZW_FRM_D8 Device folgende Zeile ein:

attr WZ_FRM_D8 IODev FRM

Das ganze sieht dann so aus:
nachher:
define WZ_FRM_D8 OWX FRM:8
attr WZ_FRM_D8 IODev FRM
attr WZ_FRM_D8 alias WZ_Temp_DS18B20
attr WZ_FRM_D8 interval 180
attr WZ_FRM_D8 room 20_Wohnzimmer


Und nun zum Problem: Wenn ich dann die Config speichere (weil ich wieder an einer ganz anderen Stelle was geändert habe, dann gibt folgende Meldung:
ERROR:
WZ_FRM_D8: unknown attribute IODev. Type 'attr WZ_FRM_D8 ?' for a detailed list.


Ursache ist, glaube ich: dass das FRM Device oben im Define angegegen wird und OWX (komischerweise) kein IODev mag.. Kann aber auch sein, dass ich irgendwas wichtiges total falsch gemacht habe..
Weglassen kann ich es nicht, da ich ein Firmata Device über USB dran hab, und eins via Ethernet

Im Log steht noch auffällig:
2017.12.10 21:23:00 1: Error: >FRM:8< has no TYPE, but following keys: ><

Und als Version habe ich momentan:
2017.12.10 16:46:30 0: Featurelevel: 5.8
2017.12.10 16:46:30 0: Server started with 147 defined entities (fhem.pl:15482/2017-11-23 perl:5.020002 os:linux user:fhem pid:13257)


Kann mir jmd. weiterhelfen? Danke vorab und lg Peer

kaizo

Habe das gleiche Problem, bei mir ist auch der 1Wire über Arduino mit Firmata an OWX gekoppelt.

2017.12.12 21:54:08 3: OWio: unknown attribute IODev. Type 'attr OWio ?' for a detailed list.

Wenn ich die IODev lösche, so wird diese beim nächsten Start wieder angelegt.
Der angezeigte Befehl "attr OWio ?" geht auch nicht.

Zudem bekomme ich auch eine Fehlermeldung aus fhem.pl
2017.12.12 21:54:08 1: Including ./FHEM/owx.cfg
2017.12.12 21:54:08 3: OWio: unknown attribute IODev. Type 'attr OWio ?' for a detailed list.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.
[Tue Dec 12 21:54:19 2017] fhem.pl: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2044, <$fh> line 6.


Diese folgt sofort, wenn die Datei mit den 1wire-Config aufgerufen wird und die Sensoren definiert werden, einschl der Attribute.
Je Definition und Attribut erfolgt eine Zeile mit der Meldung.


Fehler erscheinen auch noch später im Log:
2017.12.12 22:04:22 3: CUL_HM set Thermostat_Bad getConfig
[Tue Dec 12 22:04:51 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:51 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:51 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:51 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:52 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:52 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:54 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:54 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:54 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
[Tue Dec 12 22:04:54 2017] fhem.pl: Use of uninitialized value in string eq at ./FHEM/00_OWX.pm line 1554.
2017.12.12 22:07:21 3: CUL_HM set Ventil_Wohnzimmer_Garten getConfig



Irgendwas scheint hier nicht ganz kompatibel zu sein.
Fhem ist aktuell, ein update wird nicht angeboten
fhem.pl 15564 2017-12-07 10:48:50Z rudolfkoenig
00_OWX.pm 15392 2017-11-05 06:46:46Z phenning


Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

Prof. Dr. Peter Henning

IODev ist (eigentlich) kein Attribut des OWX Device, sondern das Firmata-Device soll NUR im Define auftauchen.

Leider behandelt das Modul 10_FRM.pm  das auf inkonsistente Weise, weil es eine solche Definition voraussetzt. Das war der Grund dafür, in 11_OWX_FRM.pm einen temporären Workaround einzubauen, und zwar in Zeile 199. Anscheinend hat es jetzt eine Veränderung in 10_FRM.pm gegeben - die ich allerdings nochnicht getestet habe. Wird alles in diesem Thread hier diskutiert: https://forum.fhem.de/index.php/topic,78693.0.html

Bitte etwas Geduld, oder die Zeile 199 selbst löschen.

LG

pah


JensS

Ihr könnt gern die, von mir modifizierte 10_FRM.pm testen.
https://forum.fhem.de/index.php/topic,80409.msg724359.html#msg724359
Die Datei sollte dann bei Updates ausgelassen werden.
attr global exclude_from_update 10_FRM.pm

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.

tbr

Ich teste gerade mal mit auskommentierter Zeile 199.
Nur zur Vollständigkeit und Fehler auszuschliessen:
11_OWX_FRM.pm:
sub Init() {
  my ($self) = @_;
  my $hash   = $self->{hash};
  my $dev    = $hash->{DeviceName};
  my $name   = $hash->{NAME};
  my $pin    = $hash->{PIN};
  my $msg;

  #main::Log 1,"==================> STARTING INIT of 11_OWX_FRM";
  select(undef,undef,undef,0.01);

  my @args = ($pin);
  $hash->{IODev} = $main::defs{$hash->{HWDEVICE}};
  my $ret = main::FRM_Init_Pin_Client($hash,\@args,PIN_ONEWIRE);
  if (defined $ret){
    $msg = "Error ".$ret;
#    main::Log3 $name,1,"OWX_FRM::Init ".$msg;    <------------- Zeile 199
    return $msg;
  }


Anschliessend ein shutdown restart und...
Config erstmal wieder reparieren (entfernen des IODev) und nochmal shutdown restart..

IODev attribut ist im device definiert, die fhem.cfg beinhaltet dieses aber nicht mehr!!!
Kann ich erstmal mit leben. Danke!
Wann wird das eingecheckt und ist via update verfügbar?
Lg Peer

Prof. Dr. Peter Henning

Das ist nicht die betreffende Zeile, und darum wird so etwas auch nicht eingecheckt. Die betreffende Zeile ist
$hash->{IODev} = $main::defs{$hash->{HWDEVICE}};

LG

pah


tbr

#6
super. ich hatte sowas schon im gefühl (--> falsche zeile auskommentiert)
Nachdem ich jetzt die richtige Zeile auskommentiert habe, bleibt das IODev Attribut auch weg.
Leider hängt sich FHEM jetzt regelmässig (hat es vorher auch schon) komplett weg, da das Netzwerk Firmata Device wohl disappeared.
Nach ist FHEM weg, erst das Firmata Device reseten, danach #service fhem restart.
Das geht gar nicht! Wenn Fhem aufgrund von einem define nicht mehr startet, bzw ganz einfriert.

Ich habe das OWX Device nun entfernt, der ds18b20 war nur ein test, ich habe einen DHT22 am mysensors gateway hängen; physiaklisch sind die beiden nur 20 cm von einander entfernt und haben nahezu das gleiche gemessen (die Nachkommastellen variierten)

Sorry, abgeschweift. OWX ist mir in der momentanen Fassung zu instabil, (zumindest via Netzwerk) und mir ist wichtiger, dass fhem an sich läuft.

Danke trotzdem für die Mühen.

Zugehörige Logs:
2017.12.15 16:00:22 1: OWX_FRM::Init Error unsupported mode '7' for pin '8'
2017.12.15 16:00:23 1: OWX_Init called for bus WZ_FRM_D8 with interface state error initializing: unsupported mode '7' for pin '8', now going for detect
2017.12.15 16:00:23 1: OWX: 1-Wire bus WZ_FRM_D8: interface Firmata detected in FIRMATA
pin '8' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 741.


oder

2017.12.15 18:21:11 3: querying Firmata Firmware Version
2017.12.15 18:21:11 3: Firmata Firmware Version: RCSwitchFirmata.ino V_2_06
2017.12.15 18:21:23 3: received String_data: Unknown pin mode
pin '8' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 784.

Prof. Dr. Peter Henning

ZitatOWX ist mir in der momentanen Fassung zu instabil

Das ist granatenmäßiger Unsinn, den man sich als Anfänger mit mangelhaften Programierkenntnissen verkneifen sollte.
Ursache des Fehlers ist nicht OWX, sondern die unsaubere Implementation des Firmata_Device.

pah