eigenes Reading mit String befüllen... Syntaxfrage

Begonnen von MichaelO, 26 Juli 2017, 08:59:44

Vorheriges Thema - Nächstes Thema

nils_

poste doch auch mal ein list von deinem DOIF
viele Wege in FHEM es gibt!

MichaelO

Hier das ganze DOIF, mit setreading jetzt komplett kleingeschrieben:

Internals:
   DEF        ## Dekobeleuchtung an, wenn es dunkel ist, der Rolladen offen, eine Deko existiert
## die Deko noch aus ist jeweils morgens und abends:

( [?dy_WZ_Dekobeleuchtung] ne "keine" and
  [?WZ_ZS_Fenster] eq "off" and
  [RS_WZ_Rolladen:position] > 60 and
  [AU_Sonnensensor:Helligkeit] < [dy_SchwellwertLichtZimmerVorne] and
  ( [?05:00-09:00] or [?15:30-22:30] )
)

     (set WZ_ZS_Fenster on,
      setreading $SELF lastActivationType auto)

DOELSEIF
## Dekobeleuchtung aus wenn Deko existiert und die Automatik sie auch eingeschaltet hat,
## der Rolladen zu geht und die Leistungsaufnahme des Entertainment unter 30 Watt ist,
## oder es hell wird
( [?dy_WZ_Dekobeleuchtung] ne "keine" and [?$SELF:lastActivationType] eq "auto" and
  ( ([RS_WZ_Rolladen:position] < 40 and [?WZ_ZS_Entertainment:power:d] < 30) or
    ([RS_WZ_Rolladen:position] > 39 and [AU_Sonnensensor:Helligkeit] > [dy_SchwellwertLichtZimmerVorne])
  )
)

     (set WZ_ZS_Fenster off,
      setreading $SELF lastActivationType manual)

DOELSEIF
## Dekobeleuchtung an wenn Deko existiert, abends der Rolladen zu ist
## und die Leistungsaufnahme des Entertainment über 30 Watt ist.
## lastActivationType auf manual, weil ja jetzt wer im Raum ist
( [?dy_WZ_Dekobeleuchtung] ne "keine" and
  [RS_WZ_Rolladen:position] < 10 and
  [WZ_ZS_Entertainment:power:d] > 30
)

     (set WZ_ZS_Fenster on,
      setreading $SELF lastActivationType manual)

DOELSEIF
## Dekobeleuchtung nach 3 Minuten aus wenn sie an ist, abends der Rolladen zu ist
## und die Leistungsaufnahme des Entertainment unter 30 Watt fällt.
## lastActivationType auf manual, weil ja jetzt wer im Raum ist
( [?dy_WZ_Dekobeleuchtung] ne "keine" and
  [RS_WZ_Rolladen:position] < 10 and
  [?17:00-02:00] and
  [WZ_ZS_Entertainment:power:d] < 30
)

     (set WZ_ZS_Fenster off,
      setreading $SELF lastActivationType manual)
   NAME       di_WZ_DekobeleuchtungAutomatik
   NR         92
   NTFY_ORDER 50-di_WZ_DekobeleuchtungAutomatik
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2017-07-27 10:43:34   Device          AU_Sonnensensor
     2017-07-27 10:43:03   cmd             0
     2017-07-27 10:43:34   e_AU_Sonnensensor_Helligkeit 3521
     2017-07-27 08:52:44   lastActivationType manual
     2017-07-27 10:43:03   state           initialized
     2017-07-27 10:43:03   timer_01_c01    28.07.2017 05:00:00
     2017-07-27 10:43:03   timer_02_c01    28.07.2017 09:00:00
     2017-07-27 10:43:03   timer_03_c01    27.07.2017 15:30:00
     2017-07-27 10:43:03   timer_04_c01    27.07.2017 22:30:00
     2017-07-27 10:43:04   timer_05_c04    27.07.2017 17:00:00
     2017-07-27 10:43:04   timer_06_c04    28.07.2017 02:00:00
   condition:
     0           InternalDoIf($hash,'dy_WZ_Dekobeleuchtung','STATE') ne "keine" and    InternalDoIf($hash,'WZ_ZS_Fenster','STATE') eq "off" and    ReadingValDoIf($hash,'RS_WZ_Rolladen','position') > 60 and   ReadingValDoIf($hash,'AU_Sonnensensor','Helligkeit') < InternalDoIf($hash,'dy_SchwellwertLichtZimmerVorne','STATE') and   ( DOIF_time($hash,0,1,$wday,$hms) or DOIF_time($hash,2,3,$wday,$hms) )
     1           InternalDoIf($hash,'dy_WZ_Dekobeleuchtung','STATE') ne "keine" and ReadingValDoIf($hash,'di_WZ_DekobeleuchtungAutomatik','lastActivationType') eq "auto" and    ( (ReadingValDoIf($hash,'RS_WZ_Rolladen','position') < 40 and ReadingValDoIf($hash,'WZ_ZS_Entertainment','power','','d') < 30) or     (ReadingValDoIf($hash,'RS_WZ_Rolladen','position') > 39 and ReadingValDoIf($hash,'AU_Sonnensensor','Helligkeit') > InternalDoIf($hash,'dy_SchwellwertLichtZimmerVorne','STATE'))   )
     2           InternalDoIf($hash,'dy_WZ_Dekobeleuchtung','STATE') ne "keine" and    ReadingValDoIf($hash,'RS_WZ_Rolladen','position') < 10 and    ReadingValDoIf($hash,'WZ_ZS_Entertainment','power','','d') > 30
     3           InternalDoIf($hash,'dy_WZ_Dekobeleuchtung','STATE') ne "keine" and    ReadingValDoIf($hash,'RS_WZ_Rolladen','position') < 10 and    DOIF_time($hash,4,5,$wday,$hms) and    ReadingValDoIf($hash,'WZ_ZS_Entertainment','power','','d') < 30
   days:
   devices:
     0           RS_WZ_Rolladen AU_Sonnensensor dy_SchwellwertLichtZimmerVorne
     1           RS_WZ_Rolladen AU_Sonnensensor dy_SchwellwertLichtZimmerVorne
     2           RS_WZ_Rolladen WZ_ZS_Entertainment
     3           RS_WZ_Rolladen WZ_ZS_Entertainment
     all         RS_WZ_Rolladen AU_Sonnensensor dy_SchwellwertLichtZimmerVorne WZ_ZS_Entertainment
   do:
     0:
       0          set WZ_ZS_Fenster on,       setreading di_WZ_DekobeleuchtungAutomatik lastActivationType auto
     1:
       0          set WZ_ZS_Fenster off,       setreading di_WZ_DekobeleuchtungAutomatik lastActivationType manual
     2:
       0          set WZ_ZS_Fenster on,       setreading di_WZ_DekobeleuchtungAutomatik lastActivationType manual
     3:
       0          set WZ_ZS_Fenster off,       setreading di_WZ_DekobeleuchtungAutomatik lastActivationType manual
     4:
   helper:
     event      VAD: 0.07,VDD: 5.1,vis: 0.0131814,temperature: 22.7188,Helligkeit: 3521,Einstrahlung: 229.35636
     globalinit 1
     last_timer 6
     sleeptimer -1
     triggerDev AU_Sonnensensor
     triggerEvents:
       VAD: 0.07
       VDD: 5.1
       vis: 0.0131814
       temperature: 22.7188
       Helligkeit: 3521
       Einstrahlung: 229.35636
     triggerEventsState:
       VAD: 0.07
       VDD: 5.1
       vis: 0.0131814
       temperature: 22.7188
       Helligkeit: 3521
       Einstrahlung: 229.35636
   internals:
     0           dy_WZ_Dekobeleuchtung:STATE WZ_ZS_Fenster:STATE dy_SchwellwertLichtZimmerVorne:STATE
     1           dy_WZ_Dekobeleuchtung:STATE dy_SchwellwertLichtZimmerVorne:STATE
     2           dy_WZ_Dekobeleuchtung:STATE
     3           dy_WZ_Dekobeleuchtung:STATE
     all         dy_WZ_Dekobeleuchtung:STATE WZ_ZS_Fenster:STATE dy_SchwellwertLichtZimmerVorne:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
   itimer:
   localtime:
     0          1501210800
     1          1501225200
     2          1501162200
     3          1501187400
     4          1501167600
     5          1501200000
   readings:
     0           RS_WZ_Rolladen:position AU_Sonnensensor:Helligkeit
     1           RS_WZ_Rolladen:position AU_Sonnensensor:Helligkeit
     2           RS_WZ_Rolladen:position WZ_ZS_Entertainment:power
     3           RS_WZ_Rolladen:position WZ_ZS_Entertainment:power
     all         RS_WZ_Rolladen:position AU_Sonnensensor:Helligkeit WZ_ZS_Entertainment:power
   readingsDesc:
     Device:
       lastActivationType 2
     cmd:
       lastActivationType 2
     e_AU_Sonnensensor_Helligkeit:
       lastActivationType 2
     lastActivationType:
       lastActivationType 2
     state:
       lastActivationType 2
     timer_01_c01:
       lastActivationType 2
     timer_02_c01:
       lastActivationType 2
     timer_03_c01:
       lastActivationType 2
     timer_04_c01:
       lastActivationType 2
     timer_05_c01:
       lastActivationType 2
     timer_06_c04:
       lastActivationType 2
     timer_07_c04:
       lastActivationType 2
   realtime:
     0          05:00:00
     1          09:00:00
     2          15:30:00
     3          22:30:00
     4          17:00:00
     5          02:00:00
   regexp:
     0:
     1:
     2:
     3:
     all:
   state:
     STATE:
   time:
     0          05:00:00
     1          09:00:00
     2          15:30:00
     3          22:30:00
     4          17:00:00
     5          02:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          3
     5          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   trigger:
   triggertime:
     1501162200:
       localtime  1501162200
       hash:
     1501167600:
       localtime  1501167600
       hash:
     1501187400:
       localtime  1501187400
       hash:
     1501200000:
       localtime  1501200000
       hash:
     1501210800:
       localtime  1501210800
       hash:
     1501225200:
       localtime  1501225200
       hash:
Attributes:
   disable    0
   room       9.1.1_Skript
   userReadings lastActivationType
   wait       10:10:5:180

Otto123

Ist das das Problem:  ???
ZitatuserReadings lastActivationType
Warum hast Du das gemacht? Das brauchst Du nicht. Reading setzen kannst Du ohne userReadings

Das userReadings hat eigentlich eine andere Funktion.

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

MichaelO

Zitat von: Otto123 am 27 Juli 2017, 14:12:18
Ist das das Problem:  ???Warum hast Du das gemacht? Das brauchst Du nicht. Reading setzen kannst Du ohne userReadings

Das userReadings hat eigentlich eine andere Funktion.

Gruß Otto

Da hast Du recht, das muss noch aus älteren Versuchen drin gewesen sein. Ich habe gelöscht, das Verhalten ist aber gleich. Gebe ich in der Kommandozeile setReading ein, mault fhem rum, schreibe ich alles klein, läuft es.

Ich hab keine Ahnung, was da los ist, aber wenigstens konnte ich so rausfinden, wie ich die Fehlermeldung weg bekomme.

Erstmal danke allen!

Otto123

Was bekommst Du für eine Fehler Meldung wenn Du in der Kommanozeile bloß folgendes eingibst:
setreading
setReading
SETREADING

Bei mir gibt es immer diese hier:
ZitatUsage: 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.
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

MichaelO

setreading:
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.


setReading und SETREADING (wie gehabt):
Usage: setreadingdesc <devspec> <readingspec> [noCheck] <key>=[<value>|?]
where <devspec> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
<readingspec> can be a single reading name, a list separated by comma (,) or a regexp.

Otto123

geht das auch bei anderen Befehlen? Also alles klein: ordentlicher Hilfetext, ein Buchstabe groß ein ganz andere "Hilfetext"?

Ich weiß noch nicht genau was wir hier untersuchen :) aber offenbar schlägt bei Dir etwas zu wenn der Befehl nicht komplett klein geschrieben ist.
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

nils_

starte doch mal fhem mit der demo cfg.
nicht das irgendwas dazwischenhaut.  :o
viele Wege in FHEM es gibt!

MichaelO

Ui, ich hoffe, da hab ich nix falsches eingetippt...

deletereading
Usage: deletereading <name> <reading>
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.


und dann deleteReading
Removed timer_07_c04 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_03_c01 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_05_c01 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed lastActivationType lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed e_AU_Sonnensensor_Helligkeit lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_04_c01 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed cmd lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed state lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_06_c04 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed Device lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_02_c01 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc
Removed timer_01_c01 lastActivationType=2 from attribute di_WZ_DekobeleuchtungAutomatik readingsDesc


Komischerweise ist das alles was von dem Reading, das mir die Kopfzerbrechen bereitet.  :o
Ich hab deleteReading danach wiederholt, da kommt nix mehr, keine Fehlermeldung, der Browser macht einen Refresh und das wars.

nils_

bei deletereading
landest du hier:
https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl#L2167

bei
deleteReading
da:
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/Unit.pm#L4582
bzw. https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/Unit.pm#L4404 am ende der sub kommt die ausgabe


eigentlich schon so ähnlich wie ich hier vermutet habe
Zitat von: nils_ am 26 Juli 2017, 14:59:39
fehlermeldung kommt denke ich hierher: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/Unit.pm#L4510

wie das mit DOIF bzw. dem Logeintrag zusammenhängt, kann ich leider nicht beantworten  :-\

Zitat von: MichaelO am 27 Juli 2017, 14:53:16
Komischerweise ist das alles was von dem Reading, das mir die Kopfzerbrechen bereitet.  :o
Ich hab deleteReading danach wiederholt, da kommt nix mehr, keine Fehlermeldung, der Browser macht einen Refresh und das wars.
das nix mehr kommt, könnte daran liegen weil er alles entfernt hat.

viele Wege in FHEM es gibt!

Otto123

#25
Das klingt nach "etwas" was auf groß geschrieben Reading anspringt - ich habe immer noch keine Vorstellung.

Wenn ich deleteReading eingebe kommt:
ZitatUsage: deletereading <name> <reading>
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.

Er hat sicher das gelöscht:
readingsDesc:
     Device:
       lastActivationType 2
     cmd:
       lastActivationType 2
     e_AU_Sonnensensor_Helligkeit:
       lastActivationType 2
     lastActivationType:
       lastActivationType 2
     state:
       lastActivationType 2
     timer_01_c01:
       lastActivationType 2
     timer_02_c01:
       lastActivationType 2
     timer_03_c01:
       lastActivationType 2
     timer_04_c01:
       lastActivationType 2
     timer_05_c01:
       lastActivationType 2
     timer_06_c04:
       lastActivationType 2
     timer_07_c04:
       lastActivationType 2


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

MichaelO

#26
Also da bin ich raus... soll ich das hier mal woanders posten, damit wer draufschauen kann, der tiefere Einblicke hat? Ich weiß nur weder wo, noch wer...

nils_

#27
Zitat von: MichaelO am 27 Juli 2017, 15:16:02
Also da bin ich raus... soll ich das hier mal woanders posten, damit wer draufhauen kann, der tiefere Einblicke hat? Ich weiß nur weder wo, noch wer...

gute frage....
da es bei dir im Zusammenhang mit DOIF war, wäre evtl. Damian der Ansprechpartner.
falls es nicht an DOIF liegt, müsstest du "weitersuchen".  -> Unit.pm maintainer
und als letzte Instanz dann rudi  :o :o


//edit:
nochmal ein bisschen gesucht
https://forum.fhem.de/index.php/topic,60285.msg521255.html
und speziell https://forum.fhem.de/index.php/topic,60285.msg521255.html#msg521255
steht was zu 'showUnits=1'.
habt ihr beide da evtl. einen unterschied??

ansonsten bin ich auch erstmal raus, das ist alles zu tiefgehend und da habe ich absolut die ganzen zusammenhänge noch nicht verstanden.
viele Wege in FHEM es gibt!