[SOLVED] FEHLER: setreading FM_OleanderMini_r active : Usage:

Begonnen von baukater, 11 Januar 2017, 16:59:54

Vorheriges Thema - Nächstes Thema

baukater

Ich hab im log folgende Fehlermeldung und komm einfach nicht darauf, was da nicht ganz in Ordnung ist. Die Werte werden
auf jeden Fall angezeigt. Hab schon 50 x draufgeschaut. Ich seh es einfach nicht.


2017.01.11 16:52:02 3: setreading FM_OleanderMini_r active : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.



Internals:
   DEF        FM_OleanderMini { $EVENT=~s/://; fhem("setreading FM_OleanderMini_r $EVENT") ;;
my $FM_OleanderMini_Temp= ReadingsVal("FM_OleanderMini_r","temperature",0) ;;
my $FM_OleanderMini_Fert= ReadingsVal("FM_OleanderMini_r","fertility",0) ;;
my $FM_OleanderMini_Lux= ReadingsVal("FM_OleanderMini_r","lux",0) ;;
my $FM_OleanderMini_Moist= ReadingsVal("FM_OleanderMini_r","moisture",0) ;;
fhem("setreading FM_OleanderMini_r state Dünger: $FM_OleanderMini_Fert Feuchtigkeit: $FM_OleanderMini_Moist Lux: $FM_OleanderMini_Lux Temperatur: $FM_OleanderMini_Temp")}
   NAME       OleanderMini_notify
   NR         726
   NTFY_ORDER 50-OleanderMini_notify
   REGEXP     FM_OleanderMini
   STATE      2017-01-11 16:52:02
   TYPE       notify
   Readings:
     2017-01-08 12:38:43   state           active
Attributes:
   room       FlowerSens
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Otto123

Hi,
Zitatsetreading FM_OleanderMini_r $EVENT
Im Event steht wirklich das reading und der Wert?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

#2

  • "state" dürfte nicht in $EVENT enthalten sein, deshalb läuft das erste setreading in eine Fehlermeldung, weil der ReadingName fehlt.
  • Um das Sonderreading state zu setzen, wenn man wirklich weiß, was man tut, sollte man setstate anstatt von setreading verwenden.
  • Wenn FM_OleanderMini_r vom Type dummy sein sollte, reicht ein einfaches set ...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

Zitat von: betateilchen am 11 Januar 2017, 17:09:01

  • "state" dürfte nicht in $EVENT enthalten sein, deshalb läuft das erste setreading in eine Fehlermeldung, weil der ReadingName fehlt.
  • Um das Sonderreading state zu setzen, wenn man wirklich weiß, was man tut, sollte man setstate anstatt von setreading verwenden.
  • Wenn FM_OleanderMini_r vom Type dummy sein sollte, reicht ein einfaches set ...

Stimmt nicht ganz, setstate setzt nur STATE und nicht state. setreading state setzt beides.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marvin78


Otto123

ZitatstateFormat
Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list Kommandos zu sehen, oder in der Raumübersicht von FHEMWEB. Falls nicht gesetzt, dann wird das state Reading übernommen. Sonst werden alle Wörter im Wert des Attributes durch das entsprechende Reading des Gerätes ersetzt (soweit vorhanden). Falls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.
Das will ich jetzt auch wissen:
Das bedeutet stateFormat setzt STATE wenn definiert? Und normalerweise führt ein set <dummy> bla und ein setreading <dymmy> state bla zu state und der setzt STATE? Außer es ist stateFormat definiert.
Nur ein setstate <dummy> bla setzt immer STATE? Egal ob stateFormat definiert ist?

Ich gebe zu: das mit setstate habe ich nicht gewusst, das habe ich gerade in der commandref gelesen. :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

es kommt darauf an.

Worauf? Wie alt das Modul ist und wie gut der Modulentwickler gearbeitet hat.

Grundsätzlich gilt:


  • Das Setzen des readings "state" sollte automatisch auch das internal STATE befüllen.
  • Das Setzen des readings "state" löst einen Event aus, der sich dann auch um stateFormat und eine evtl. definierte EventMap kümmert, damit Anzeigen im Frontend entsprechend aktualisiert werden.
  • Das internal STATE sollte von einem Modul/Device schon lange nicht mehr "hart" beschrieben werden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

baukater

Zitat von: betateilchen am 11 Januar 2017, 17:09:01

  • "state" dürfte nicht in $EVENT enthalten sein, deshalb läuft das erste setreading in eine Fehlermeldung, weil der ReadingName fehlt.
  • Um das Sonderreading state zu setzen, wenn man wirklich weiß, was man tut, sollte man setstate anstatt von setreading verwenden.
  • Wenn FM_OleanderMini_r vom Type dummy sein sollte, reicht ein einfaches set ...

ich hab jetzt mal das state herausgenommen, hab die Fehlermeldung aber noch immer.
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Otto123

Du hast das nicht verstanden!
Dieser Befehl ist mit Sicherheit falsch!
setreading FM_OleanderMini_r $EVENT
Das erste setreading in deinem notify.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

baukater

Zitat von: Otto123 am 11 Januar 2017, 17:59:50
Du hast das nicht verstanden!
Dieser Befehl ist mit Sicherheit falsch!
setreading FM_OleanderMini_r $EVENT
Das erste setreading in deinem notify.

Gruß Otto

Ja das kann gut sein  :(

Fehlerhaft war wohl, dass der Dummy und das Device auf dem Remote-Pi nicht den gleichen Namen hatten. Das hab ich
jetzt mal geändert.

Im log erscheint jetzt:

Ist doch zum Mäusemelken  ::)

2017.01.12 12:07:26 3: OleanderMini_notify return value: 25
2017.01.12 12:07:26 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: OleanderMini_notify return value: 25
2017.01.12 12:07:31 3: setreading FM_OleanderMini active : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.


Das notify hab ich so geändert:

Internals:
   DEF        FM_OleanderMini { $EVENT=~s/://; fhem("setreading FM_OleanderMini $EVENT") ;;
my $FM_Temp= ReadingsVal("FM_OleanderMini","temperature",0) ;;
my $FM_Fert= ReadingsVal("FM_OleanderMini","fertility",0) ;;
my $FM_Lux= ReadingsVal("FM_OleanderMini","lux",0) ;;
my $FM_Moist= ReadingsVal("FM_OleanderMini","moisture",0) ;;
}
   NAME       OleanderMini_notify
   NOTIFYDEV  FM_OleanderMini
   NR         691
   NTFY_ORDER 50-OleanderMini_notify
   REGEXP     FM_OleanderMini
   STATE      2017-01-12 12:07:31
   TYPE       notify
   Readings:
     2017-01-12 11:52:32   state           active
Attributes:
   room       FlowerSens


das setreading ... state in der letzten Zeile hab ich mal herausgenommen, nur um das mal zu vereinfachen. Die Zuweisung der Variablen machen natürlich erstmal keinen Sinn.

Und das Dummy-Device sieht aktuell so aus:


Internals:
   NAME       FM_OleanderMini
   NR         668
   STATE      active
   TYPE       dummy
   Readings:
     2017-01-12 12:07:31   battery         92
     2017-01-12 12:07:26   call            data
     2017-01-12 12:07:31   fertility       242
     2017-01-12 12:07:31   firmware        2.6.2
     2017-01-12 12:07:31   lux             291
     2017-01-12 12:07:31   moisture        25
     2017-01-12 12:07:31   state           active
     2017-01-12 12:07:31   temperature     21.4
Attributes:
   room       FlowerSens
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Otto123

Sorry aber so gut kann keine Glaskugel. Wenn Du nicht erklärst was Du überhaupt machst kann Dir wahrscheinlich keiner helfen.

Remote-Pi?

Kannst Du mal zeigen was im $EVENT steht? DEF        FM_OleanderMini { Log 1, "Hier kommt der Event: $EVENT"}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

baukater

Zitat von: Otto123 am 12 Januar 2017, 12:28:47
Sorry aber so gut kann keine Glaskugel. Wenn Du nicht erklärst was Du überhaupt machst kann Dir wahrscheinlich keiner helfen.

Remote-Pi?

Kannst Du mal zeigen was im $EVENT steht? DEF        FM_OleanderMini { Log 1, "Hier kommt der Event: $EVENT"}

Gruß Otto


2017.01.12 16:57:45 1: Hier kommt der Event: call data
2017.01.12 16:57:47 1: Hier kommt der Event: battery: 92
2017.01.12 16:57:47 1: Hier kommt der Event: temperature: 21.3
2017.01.12 16:57:47 1: Hier kommt der Event: lux: 17
2017.01.12 16:57:47 1: Hier kommt der Event: moisture: 24
2017.01.12 16:57:47 1: Hier kommt der Event: fertility: 225
2017.01.12 16:57:47 1: Hier kommt der Event: firmware: 2.6.2
2017.01.12 16:57:47 1: Hier kommt der Event: active


Hier zur Erklärung: Ich habe einen Remote-Pi an dem 4 Pflanzensensoren definiert sind und per FHEM2FHEM an den Haupt-Pi
übermittelt werden sollen. Auf dem Haupt-Pi hab ich Dummies mit gleichem Namen definiert die dann die Werte per notifiy zugeordnet werden sollen.


FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Otto123

Hi Baukater,

Zitat2017.01.12 12:07:31 3: setreading FM_OleanderMini active : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Zitat2017.01.12 16:57:47 1: Hier kommt der Event: active
Fällt Dir irgendetwas auf?
Alles klar?

Ich habe Dir von Anfang an gesagt dieser Befehl ist Mist:
setreading FM_OleanderMini_r $EVENT

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz