Autor Thema: Attribut "disable" für ECMD?  (Gelesen 1565 mal)

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Attribut "disable" für ECMD?
« am: 20 Januar 2018, 15:04:33 »
Für das Modul ECMD gibt es offensichtlich das Attribut "disable" nicht. Hat das einen Hintergrund? Da ich ein AVR_NET_IO im Gartenhaus mit Photovolaik gespeist nur im Sommer betreibe und dieses im Winter vom Strom getrennt wird, würde ich es in FHEM gerne disablen, ohne es aber komplett zu löschen.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3647
    • Meine Seite im fhemwiki
Antw:Attribut "disable" für ECMD?
« Antwort #1 am: 20 Januar 2018, 16:54:06 »
Wenn disable im Modul nicht implementiert ist, kannst Du als Alternative auch das attribut ignore setzen, dann taucht der device zwar auch nicht in der oberfläche auf, du kannst ihn aber immer noch direkt anspringen und die daten bleiben erhalten.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #2 am: 20 Januar 2018, 18:26:06 »
Hallo,

was soll disable denn bewirken?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #3 am: 20 Januar 2018, 19:35:19 »
Ich habe das Problem, dass mir apptime sehr viele lange dauernde Hashs anzeigt, perfmon listet auch viele freezes entsprechender Dauer. Eigentlich dachte ich, alle Zugriffe deaktiviert zu haben. Dennoch gibt's nicht wirklich eine Besserung. Und da ich jetzt gerade auch mit anderen Modulen am Einrichten bin, möchte ich eben das jetzt sowieso nicht verbundene Gerät in FHEM deaktivieren. Den Tipp mit ignore werde ich probieren, darauf bin ich nicht gekommen. Vielleicht war das genau das was ich brauche.

Danke.

EDIT: Das Attribut ignore gibt's offensichtlich auch nicht. Habe mir jetzt mal mit der unorthodoxen Weise beholfen, die entsprechenden Zeilen der config manuell auszukommentieren.
« Letzte Änderung: 20 Januar 2018, 21:38:47 von duke-f »
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #4 am: 21 Januar 2018, 00:13:59 »
Hallo,

ECMDDevices werden ja nicht von selbst aktiv, daher ist mir noch unklar, warum Du Wartezeiten hast. Am besten zeigst Du uns alle defines, die relevant sind. Dann kann man überlegen, ob eine Anpassung in einem Modul hilfreich ist.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #5 am: 21 Januar 2018, 01:10:29 »
Besten Dank, da hast Du natürlich absolut recht. Aber ich muss zugeben, dass ich hier bezüglich der ECMDDevices etwas den Überblick verloren habe und nicht auf die Schnelle überblicke, welche defines relevant sind. Zudem bin ich gerade meist von Extern mit Tablet aktiv. Sobald ich sie extrahiert habe, poste ich sie. Früher hatte ich eher eine Netzspezifische Ursache vermutet, da das AVR-NET-IO über einen WLAN-Adapter verbunden ist. Jetzt aber soll es eigentlich gar nichts machen, da es nicht verbunden ist.

Aber meine Konfiguration ist natürlich bestimmt ein sehr individuelles System. "Nur" wegen meinem Chaos ein Modul generell anzupassen ist selbstverständlich fraglich. Dac hte nur, es könnte in diesem Modul wie auch in anderen von grundsätzlichem Interesse sein.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #6 am: 21 Januar 2018, 15:11:24 »
Lielleicht sollte ich zur Erklärung noch etwas anfügen:

Mein System ist über die letzten 4 Jahre immens gewachsen, da ich immer die Neigung verspüre, alles was möglich ist auch zu integrieren. Bisher hatte ich das Ziel, alles in einem System zusammen zu fassen. Daher läuft das Hauptsystem auch auf einem Cubie, der ansonsten nichts zu tun hat. Eigentlich habe ich ja das Gefühl, dass der sich trotz Vielzahl an Devices langweilt. Da es aber mittlerweile immer wieder mal Komponenten gibt, die testweise eingefügt werden (aktuell: Chromecast und FireTV sowie einige EMCD-WLAN-Komponenten) macht es wahrscheinlich schon mal Sinn, das ganze zu teilen und beispielsweise nur nötigste Dinge dann per FHEM2FHEM zu verknüpfen. So musste ich es beispielsweise mit meinem Victron machen, das über ein USB-WLAN-Adapter eingebunden werden muss und für den wiederum es nur Treiber auf Intel-Basis gab. Jetzt plane ich, die AVR-NET-IO-Schiene auch auf ein Zweitsystem auszulagern.

Jetzt ist es natürlich nicht ganz einfach, hier eine Teilung durchzuführen, ohne wichtige Verbindungen zu kappen, da ja doch vieles von FHEM automatisch angelegt wurde. Zudem ist mir berufsbedingt nicht oft eine etwas längere Zeitspanne für intensive Beschäftigung mit FHEM gegönnt. Daher ist es auch vorteilhaft, einzelne Komponenten im Hauptsystem erst mal deaktivieren zu können, vor sie dort komplett gelöscht werden und in ein oder zwei Nebensysteme verschoben werden.

Etwas lange Rede, aber ich denke schon, dass die Entwickler, die hier alles großzügig allgemein zur Verfügung stellen, eine ausführlichere Erklärung verdient haben. Kommt doch gerade auch jetzt beispielsweise nach den "tollen" Neuheiten auf der CES immer wieder der Gedanke auf: Was ist da bitte schön so toll? FHEM kann das alles, und noch viel mehr ....
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #7 am: 31 Januar 2018, 03:35:47 »
So, endlich habe ich es geschafft, das betreffende aus der Config zusammenzustellen. Das sollte nun alles enthalten, was das AVR-NET-IO in meiner Config betrifft.

fhem.cfg
define AVR_NET_IO ECMD telnet 192.168.178.51:2701
attr AVR_NET_IO classdefs adc=/opt/fhem/avr/adc.classdef:RELAIS=/opt/fhem/avr/relais.classdef
attr AVR_NET_IO icon it_router
attr AVR_NET_IO requestSeparator \000
attr AVR_NET_IO room CUL
attr AVR_NET_IO timeout 60000

#Realais 1-4: Ladung DJI-Akkus
define Relais1 ECMDDevice RELAIS 1
attr Relais1 IODev AVR_NET_IO
attr Relais1 room ECMDDevice
define Relais2 ECMDDevice RELAIS 2
attr Relais2 IODev AVR_NET_IO
attr Relais2 room ECMDDevice
define Relais3 ECMDDevice RELAIS 4
attr Relais3 IODev AVR_NET_IO
attr Relais3 room ECMDDevice
define Relais4 ECMDDevice RELAIS 8
attr Relais4 IODev AVR_NET_IO
attr Relais4 room ECMDDevice

#Relais 5: Gartenhaus wässern
define Relais5 ECMDDevice RELAIS 10
attr Relais5 IODev AVR_NET_IO
attr Relais5 alias Pumpe_Orangerie
attr Relais5 devStateIcon on.*:sani_irrigation@red off.*:time_manual_mode
attr Relais5 group Orangerie
attr Relais5 icon sani_irrigation
attr Relais5 room Außen,ECMDDevice
attr Relais5 sortby 1

#Relais 6-8: Ungenutzt
define Relais6 ECMDDevice RELAIS 20
attr Relais6 IODev AVR_NET_IO
attr Relais6 room ECMDDevice
define Relais7 ECMDDevice RELAIS 40
attr Relais7 IODev AVR_NET_IO
attr Relais7 room ECMDDevice
define Relais8 ECMDDevice RELAIS 80
attr Relais8 IODev AVR_NET_IO
attr Relais8 room ECMDDevice

define Analog1 ECMDDevice adc 4
attr Analog1 IODev AVR_NET_IO
attr Analog1 room ECMDDevice
define Analog2 ECMDDevice adc 5
attr Analog2 IODev AVR_NET_IO
attr Analog2 room ECMDDevice
define Analog3 ECMDDevice adc 6
attr Analog3 IODev AVR_NET_IO
attr Analog3 room ECMDDevice
define Analog4 ECMDDevice adc 7
attr Analog4 IODev AVR_NET_IO
attr Analog4 referenz 7111
attr Analog4 room ECMDDevice
attr Analog4 schwellwert 11.5

define Digital1 ECMDDevice adc 0
attr Digital1 IODev AVR_NET_IO
attr Digital1 room ECMDDevice
define Digital2 ECMDDevice adc 1
attr Digital2 IODev AVR_NET_IO
attr Digital2 room ECMDDevice
define Digital3 ECMDDevice adc 2
attr Digital3 IODev AVR_NET_IO
attr Digital3 room ECMDDevice
define Digital4 ECMDDevice adc 3
attr Digital4 IODev AVR_NET_IO
attr Digital4 room ECMDDevice

#wahlweise eine, zwei, drei oder vier DJI-Akkus jeweils 30 Minuten laden
define DI_DJI_Lagerung DOIF ([DJI_Lagerung] eq "laden_4") (\
defmod Akku_1_laden at +00:00:00 set Relais1 on,\
defmod Akku_1_stopp at +00:30:00 set Relais1 off,\
defmod Akku_2_laden at +00:30:10 set Relais2 on,\
defmod Akku_2_stopp at +01:00:20 set Relais2 off,\
defmod Akku_3_laden at +01:00:30 set Relais3 on,\
defmod Akku_3_stopp at +01:30:30 set Relais3 off,\
defmod Akku_4_laden at +01:30:40 set Relais4 on,\
defmod Akku_4_stopp at +02:00:40 set Relais4 off,\
defmod DJI_Lagerung_aus at +02:00:50 set DJI_Lagerung aus)\
DOELSEIF ([DJI_Lagerung] eq "laden_4_10") (\
defmod Akku_1_laden at +00:00:00 set Relais1 on,\
defmod Akku_1_stopp at +00:10:00 set Relais1 off,\
defmod Akku_2_laden at +00:10:10 set Relais2 on,\
defmod Akku_2_stopp at +00:20:20 set Relais2 off,\
defmod Akku_3_laden at +00:20:30 set Relais3 on,\
defmod Akku_3_stopp at +00:30:30 set Relais3 off,\
defmod Akku_4_laden at +00:30:40 set Relais4 on,\
defmod Akku_4_stopp at +00:40:40 set Relais4 off,\
defmod DJI_Lagerung_aus at +00:40:50 set DJI_Lagerung aus)\
DOELSEIF ([DJI_Lagerung] eq "laden_3") (\
defmod Akku_1_laden at +00:00:00 set Relais1 on,\
defmod Akku_1_stopp at +00:30:00 set Relais1 off,\
defmod Akku_2_laden at +00:30:10 set Relais2 on,\
defmod Akku_2_stopp at +01:00:20 set Relais2 off,\
defmod Akku_3_laden at +01:00:30 set Relais3 on,\
defmod Akku_3_stopp at +01:30:30 set Relais3 off,\
defmod DJI_Lagerung_aus at +01:30:40 set DJI_Lagerung aus)\
DOELSEIF ([DJI_Lagerung] eq "laden_2") (\
defmod Akku_1_laden at +00:00:00 set Relais1 on,\
defmod Akku_1_stopp at +00:30:00 set Relais1 off,\
defmod Akku_2_laden at +00:30:10 set Relais2 on,\
defmod Akku_2_stopp at +01:00:20 set Relais2 off,\
defmod DJI_Lagerung_aus at +01:00:30 set DJI_Lagerung aus)\
DOELSEIF ([DJI_Lagerung] eq "laden_1") (\
defmod Akku_1_laden at +00:00:00 set Relais1 on,\
defmod Akku_1_stopp at +00:30:00 set Relais1 off,\
defmod DJI_Lagerung_aus at +00:30:10 set DJI_Lagerung aus)\
DOELSEIF ([DJI_Lagerung] eq "aus") (set Relais1 off, set Relais2 off, set Relais3 off, set Relais4 off)
attr DI_DJI_Lagerung disable 0
attr DI_DJI_Lagerung do always
attr DI_DJI_Lagerung group Wecker
attr DI_DJI_Lagerung room Wecker
define FileLog_Relais_AVR FileLog ./log/FileLog_Relais_AVR-%Y.log Relais1:.*|Relais2:.*|Relais3:.*|Relais4:.*|Relais5:.*|Relais6:.*|Relais7:.*|Relais8:.*

#Solar Gartenhaus Spannung der Beliakkus über Analogeingang 4 abfragen
define Solarakku dummy
attr Solarakku group Außen,Energie
attr Solarakku icon measure_photovoltaic_inst
attr Solarakku room Außen,Energie
attr Solarakku sortby 5
define FileLog_Solarakku FileLog /opt/fhem/log/Solarakku-%Y.log ITR1500_3:.*|PV_Gartenhaus:.*|Solarakku:.*
define Solarakku_Set at +*00:05:00 {Solarstatistik()}
attr Solarakku_Set disable 1
define Solarakku_Get at +*00:05:00 get Analog4 value
attr Solarakku_Get disable 1
define SVG_FileLog_Solarakku_1 SVG FileLog_Solarakku:SVG_FileLog_Solarakku_1:CURRENT

#Bewässerung Gartenhaus über Relais 5 schalten abhängig von Füllstand Regentonne, Wetter und Solarakkuspannung
define FileLog_Pumpe_Orangerie FileLog ./log/FileLog_Pumpe_Orangerie-%Y.log Hat_gerade_geregnet:.*|Pumpe_Orangerie_S:.*|Relais5:.*
define DI_Pumpe_Orangerie DOIF ([10:00] and [?Regentonne]>=2 and [?Solarakku]>=11.3) (\
         set Relais5 on,\
set Pumpe_Orangerie_S "an wegen Zeit - voll",\
defmod Pumpe_OR_aus at +00:10:00 set Relais5 off)\
DOELSEIF ([10:00] and [?Regentonne]>=1 and [?Solarakku]>=11.3) (\
         set Relais5 on,\
set Pumpe_Orangerie_S "an wegen Zeit - leer",\
defmod Pumpe_OR_aus at +00:05:00 set Relais5 off)
attr DI_Pumpe_Orangerie disable 0
attr DI_Pumpe_Orangerie do always
attr DI_Pumpe_Orangerie verbose 5

define DI_Stop_Pumpe_Orangerie DOIF (([Solarakku]<11.2 or [Regentonne]<1) and [Relais5]=~"on")(set Relais5 off,\
set Pumpe_Orangerie_S "aus wegen Strom oder Tonne leer")
attr DI_Stop_Pumpe_Orangerie do always

define DI_OR_bei_Regen DOIF ([Wetter:israining] eq "yes" and [?Hat_gerade_geregnet] eq "nein" and [?Regentonne]==3 and [?Solarakku]>=10.9) (\
        set Relais5 on,\
set Pumpe_Orangerie_S "an wegen Regen",\
        defmod Pumpe_OR_aus at +00:20:00 set Relais5 off,\
set Hat_gerade_geregnet ja,\
defmod Hgg_aus at 12:00:00 set Hat_gerade_geregnet nein)
attr DI_OR_bei_Regen disable 0
attr DI_OR_bei_Regen do always

define Hat_gerade_geregnet dummy
define Pumpe_Orangerie_S dummy
define DI_Pumpe_Orangerie_aus DOIF ([Relais5] =~ "on")(defmod Pumpe_Orangerie_aus at +00:20:00 set Relais5 off)

00_myUtils.pm
#### Solarstatistik Gartenhaus ####
sub
Solarstatistik
 {
 my $Spannung = round(1000*(ReadingsVal("Analog4","value","")))/1000;
 fhem ("set Solarakku $Spannung");
 }
#############################
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #8 am: 03 Februar 2018, 12:33:46 »
Hallo duke-f,

m.E. musst Du alle at-Befehle deaktivieren, die direkt oder indirekt (DOIF) dafür sorgen, dass mit dem ECMDDevice gesprochen wird.

Um mal bei der Idee des disable zu bleiben: soll ein ECMDDevice einfach undef auf ein get oder set zurückliefern, wenn es disabled ist?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #9 am: 03 Februar 2018, 21:21:43 »
Hallo duke-f,

m.E. musst Du alle at-Befehle deaktivieren, die direkt oder indirekt (DOIF) dafür sorgen, dass mit dem ECMDDevice gesprochen wird.
Muss ich nochmal gründlich prüfen. Eigentlich meine ich, das ich die direkten set und get "gedisabled" habe und die indirekten per DOIF gar nicht aktiviert werden, da die Bedingung "Regentonne" nicht geschaltet wird - deren Sensor ist deaktiviert. Wie gesagt, ich muss prüfen, ob ich doch etwas übersehen habe.

Zitat
Um mal bei der Idee des disable zu bleiben: soll ein ECMDDevice einfach undef auf ein get oder set zurückliefern, wenn es disabled ist?
Jetzt hatte ich einfach mal alle zur ECMDDevice gehörenden Zeilen auskommentiert in der Config, also sowohl die EMCDDevice selber als auch alle Relais und Analogeingänge. Es kommt dann auch zu weder Meldungen noch zu Freezes zum AVR-NET-IO. SO stelle ich mir das Disable eigentlich vor: Es ersetzt das Auskommentieren des AVR-NET-IO, ein "undef" als Rückmeldung ist sicher sinnvoll.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #10 am: 11 Februar 2018, 08:37:09 »
Hallo,

bitte finde anbei ein überarbeitetes Modul, welches das Attribut disable beinhaltet.

Ich würde mich freuen, wenn Du es testest und mir Rückmeldung gibst.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #11 am: 11 Februar 2018, 11:56:06 »
Perfekt, das mache ich. Besten Dank!

Am WE sind noch so einige familiäre Verpflichtungen vorrangig, aber Du bekommst sicher innerhalb der nächsten Tage ein erstes Feedback.

Beste Grüße
duke-f

EDIT:
Hab's doch gleich probiert.
Vorgehen:
- 66_ECMD.pm im FHEM-Verzeichnis ersetzt,
- shutdown restart
- Attribut disable mit Defaultwert 0 gesetzt,
- Zugriff auf Analog4 (ein Beispieldevice, das ich als einziges probeweise aktiviert habe und das eine analoge Spannung einliest) funktioniert wir gehabt,
- Attribut disable auf 1 gesetzt,
- Zugriff auf Analog4 weiter wie oben möglich, Spannungswert wird bei Abfrage ausgegeben.
- Config per "save" gesichert und anschließend mittels "rereadcfg" neu eingelesen, Attribut disable ist weiterhin auf 1 gesetzt.
- Zugriff auf Analog4 ergibt die Meldung: "Please define Analog4 first"

Bin jetzt nicht sicher, ob das so auch wirklich geplant ist, aber auf den ersten Blick scheint es mir so, wie ich es mir vorstelle. Klar, muss jetzt erst noch mal das ganze Szenario des Übergangs zum Winter mit Außerbetriebnahme des AVR-NET-IO durchspielen.

EDIT 2:
Ist es richtig, dass  durch setzen des Attributes "disabled" entsprechende Module (Relais oder Analog, beispielsweise) komplett gelöscht werden? Das war so eigentlich nicht mein Ziel, denn im Frühjahr, nach dem Reaktivieren des Sommerzustandes, muss ich sie dann ja komplett erst wieder neu anlegen.
« Letzte Änderung: 11 Februar 2018, 18:10:09 von duke-f »
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #12 am: 17 Februar 2018, 20:54:44 »
EDIT 2:
Ist es richtig, dass  durch setzen des Attributes "disabled" entsprechende Module (Relais oder Analog, beispielsweise) komplett gelöscht werden? Das war so eigentlich nicht mein Ziel, denn im Frühjahr, nach dem Reaktivieren des Sommerzustandes, muss ich sie dann ja komplett erst wieder neu anlegen.

Das passiert auch nicht. Ich tippe auf einen Bedienfehler.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #13 am: 18 Februar 2018, 20:11:43 »
Würde ich gerne glauben, kann ich aber nicht nachvollziehen. Ich erkläre am Besten nochmal mein Vorgehen Schritt für Schritt. Das habe ich jetzt zweimal exakt so durchgeführt und nebenher direkt protokolliert.

Ausgangszustand:
In meiner Config ist für das AVR_NET-IO
define AVR_NET_IO ECMD telnet 192.168.178.51:2701
attr AVR_NET_IO classdefs adc=/opt/fhem/avr/adc.classdef:RELAIS=/opt/fhem/avr/relais.classdef
attr AVR_NET_IO disable 0
attr AVR_NET_IO icon it_router
attr AVR_NET_IO requestSeparator \000
attr AVR_NET_IO room CUL
attr AVR_NET_IO timeout 60000
und beispielsweise für einen Analogeingang
...
#define Analog3 ECMDDevice adc 6
#attr Analog3 IODev AVR_NET_IO
#attr Analog3 room ECMDDevice
#
define Analog4 ECMDDevice adc 7
attr Analog4 IODev AVR_NET_IO
attr Analog4 referenz 7111
attr Analog4 room ECMDDevice
attr Analog4 schwellwert 11.5
#
#define Digital1 ECMDDevice adc 0
#attr Digital1 IODev AVR_NET_IO
#attr Digital1 room ECMDDevice
...
List Analog4 gibt aus:
Internals:
   DEF        adc 7
   IODev      AVR_NET_IO
   NAME       Analog4
   NR         82
   STATE      portvalue 944
   TYPE       ECMDDevice
   READINGS:
     2018-02-18 19:49:26   portvalue       944
     2018-02-18 19:49:26   state           portvalue 944
   fhem:
     classname  adc
     cache:
       specials:
         %NAME      Analog4
         %PortID    7
         %TYPE      ECMDDevice
     params:
       PortID     7
Attributes:
   IODev      AVR_NET_IO
   referenz   7111
   room       ECMDDevice
   schwellwert 11.5
Soweit gut. Jetzt setze ich das disable-Attribut auf 1, sichere die Config und mache ein rereadcfg. Da bekomme ich schon mal die Meldung
ECMDDevice Relais5 error: no I/O device.
ECMDDevice Analog4 error: no I/O device.
Please define Analog4 first
Please define Analog4 first
Please define Analog4 first
und denke mir mal nichts weiter dabei (Relais5 ist eine zweite ECMDDevice mit genau gleichem Verhalten wie Analog4, alle anderen EMCDDevices habe ich auskommentiert für den Test). Wohlbemerkt: Ich mache kein shutdown restart diesmal, sondern nur rereadcfg.

In edit files, fhem.cfg sehe ich für Analog4 und Relais 5 aber immer noch die obigen Einträge. Bereits list Analog4 liefert mir aber
No device named Analog4 found
Jetzt folgt ein shutdown restart. Weiterhin sind Relais5 und Analog4 in der fhem.cfg vorhanden, list Analog4 liefert immer noch
No device named Analog4 found
Dann setzte ich das Attribut disable wieder auf 0 und sichere wieder per save. Und siehe da, in der Config fehlen die entsprechenden Teile für beispielsweise Analog4:
...
#define Analog3 ECMDDevice adc 6
#attr Analog3 IODev AVR_NET_IO
#attr Analog3 room ECMDDevice
#
#
#define Digital1 ECMDDevice adc 0
#attr Digital1 IODev AVR_NET_IO
#attr Digital1 room ECMDDevice
...

Das bedeutet offensichtlich, dass die Einträhe für die ECMDDevices aus der Config erst dann verwschwinden, wenn für das AVR-NET-IO das Attribut wieder zu 0 gesetzt wird.

Besten Gruß
duke-f
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #14 am: 18 Februar 2018, 20:24:28 »
Das ist sehr merkwürdig.

Möglicherweise wird an einer Stelle ein zurückgeliefertes undef als fehlendes I/O-Device interpretiert. Ich muss das debuggen. Kann eine Weile dauern, bis ich dazu komme.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #15 am: 18 Februar 2018, 20:58:36 »
Keine Ursache - lass Dir Zeit. Bin ja froh, auch mal zumindest so was beitragen zu können.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #16 am: 04 März 2018, 14:34:32 »
Hallo,

das Problem liegt an der Benennung des Attributs. disable sorgt dafür, dass das ECMD nicht als IODev für ein ECMDDevice verwendet werden kann. Das ist ein Feature des FHEM-Frameworks.

Ich habe jetzt das Attribut in stop umbenannt. Anbei die neue Version mit der Bitte um Test. Bei mir geht es.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline duke-f

  • Sr. Member
  • ****
  • Beiträge: 597
Antw:Attribut "disable" für ECMD?
« Antwort #17 am: 04 März 2018, 18:36:41 »
Mein Respekt! Sowas zu finden stelle ich mir wie die Suche nach der Nadel im Heuhaufen vor. Jetzt scheint es auch bei mir zu funktionieren. Setze ich "stop" auf 1, bekomme ich beispielsweise für portvalue auf einem Analogeingang den Wert 0, setze ich wieder "stop" auf 0, bekomme ich den gemessenen Zahlenwert ungleich 0.

Besten Dank!
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
AVR-NET-IO, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4211
Antw:Attribut "disable" für ECMD?
« Antwort #18 am: 10 März 2018, 14:12:10 »
Ab morgen im Update.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!
Gefällt mir Gefällt mir x 1 Liste anzeigen

 

decade-submarginal