Gelöscht: AT Befehl mit sunset und PERL IF Problem

Begonnen von Manos, 29 August 2021, 22:15:57

Vorheriges Thema - Nächstes Thema

Manos

Hallo an alle,

es treibt mich zum Wahnsinn!

Mein Befehl um die Rolladen automatisch runter zu fahren (wenn sie nicht vorher auf eine andere Position gefahren sind) funktioniert
defmod RolladenRunter_Test at *20:00:00 \
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100) \
{ fhem("set Shelly25.SZ_Rechts pct 5")} \
}\

Damit war ich glücklich.

Aber danach dachte ich, ich mache es noch besser: Die Rolladen sollten erst beim Sonnenuntergang runter gefahren werden!
es gibt ja das  sunset(0,"17:00","23:00")   

Und jetzt verstehe ich nicht, warum mein Befehl
defmod RolladenRunter_Test at *{sunset(0,"17:00","23:00")} \
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100) \
{ fhem("set Shelly25.SZ_Rechts pct 5")} \
}\


und...... dieser Befehl funktioniert nicht!  >:(

Kann vielleicht irgendjemand erkennen, welche Dummheit ich getippt habe?

Schöne Grüße

Manos


LOESUNG: Alles auf eine Linie und es funktioniert!
defmod RolladenRunter_Rechts_SZ at *{sunset(0,"17:00","23:00")} { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100) { fhem("set Shelly25.SZ_Rechts pct 5")} }

Danke Otto123, du hast Recht gehabt  :)
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

Hi Manos,

der letzte backslash ist in beiden Definitionen sinnlos/bis schädlich - ansonsten ist alles schick.

Was funktioniert denn nicht?

Wie sieht ein list RolladenRunter_Test aus?

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

Manos

Hi Otto,

wenn ich *{sunset(0,"17:00","23:00")}  (anstatt eine feste Uhrzeit) benutze:
TRIGGERTIME wird correct identifiziert, aber wenn die Zeit kommt, passiert nichts.
Der IF Befehl ist richtig (er funktioniert ja wenn ich eine feste Uhrzeit eingebe).
Daraufhin gehe ich davon aus, der Satz *{sunset(0,"17:00","23:00")} passt irgendwie
mit dem Restlichen { if ................ } zusammen.

Unterschied:
- Feste Uhrzeit ist FHEM
- {sunset(0,"17:00","23:00")} ist PERL
Vielleicht passt irgendetwas in meiner Syntax nicht, ich finde aber nirgendwo etwas was mir helfen koennte.


Internals:
   COMMAND    { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set Shelly25.SZ_Rechts pct 5")}
}

   DEF        *{sunset(0,"17:00","23:00")}
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set Shelly25.SZ_Rechts pct 5")}
}


   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_Test
   NR         447
   NTM        20:55:04
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 20:55:04
   TIMESPEC   {sunset(0,"17:00","23:00")}
   TRIGGERTIME 1630349704
   TRIGGERTIME_FMT 2021-08-30 20:55:04
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630276435.29506
           VALUE      Next: 20:55:04
   READINGS:
     2021-08-30 00:33:55   state           Next: 20:55:04
Attributes:


HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Nobbynews

#3
Dein Vergleich ist falsch. Du möchtest numerisch vergleichen.
Also muss es heißen
if (ReadingsNum("Shelly25.SZ_Rechts","pct",0) == 100)
Was ergibt denn die Eingabe von
{sunset(0,"17:00","23:00")}
in der Kommandzeile? Bei mir sind das für heute "20:59:29".
Dumme Frage noch zur Sicherheit:
Sind die Werte für die geographische Lage gesetzt?
Als Beispiel aus dem wiki:
    attr global latitude 52.51626
    attr global longitude 13.37778


Edit:
Der Befehl zum Schließen wird bei Deinem Vergleich nur ausgeführt, wenn das Reading den Wert 100 hat.
Ggf. wäre es sinnvoller hier auf z.B. >= 90 zu vergleichen.

Otto123

Moin,

also zunächst mal mit der Zeit ist alles richtig: TRIGGERTIME_FMT 2021-08-30 20:55:04
Das at rennt also heute Abend los. Dein Ausführungsteil ist ja der gleiche, den kannst Du auch direkt in der FHEM Kommandzeile auf Funktion testen.

Wenn Du sagst das at hat nichts getan, dann:
war entweder der Sonnenuntergang gestern schon vorbei als Du das at definiert hast
oder die Bedingung war nicht erfüllt.

Perl ist das relativ egal wie man den Vergleich schreibt aber natürlich gibt es Unterschiede, die werden wahrscheinlich in dem Fall keine Rolle spielen.:
ZitatBinary "==" returns true if the left argument is numerically equal to the right argument.
Binary "!=" returns true if the left argument is numerically not equal to the right argument.
Binary "eq" returns true if the left argument is stringwise equal to the right argument.
Binary "ne" returns true if the left argument is stringwise not equal to the right argument.

Um dem Fehler auf die Spur zu kommen, kannst Du ja einen Log Eintrag einbauen.
{Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)}

Zitatder letzte backslash ist in beiden Definitionen sinnlos/bis schädlich - ansonsten ist alles schick.
Du hattest in deinem ersten Post die leere Zeile am Ende unterschlagen, deswegen meine Bemerkung ;) aber die ist wirklich nutzlos.

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

Manos

#5
Danke Nobbynews und Otto fuer die schnelle Hilfe!

@Nobbynews: wie bereits gesagt, mein Perl IF Befehl funktioniert. Es ist die Kombination von sunset() und Perl IF Befehl, die das Problem verursacht.

@Otto: Danke fuer den Tip, jetzt weiss ich wie man die FHEM Kommandzeile nutzen kann:  { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100) { fhem("set Shelly25.SZ_Links pct 80")} } in der FHEM Kommandzeile funktioniert einwandfrei.
und auch wie man Eintrage im Eventlog generieren kann  :)
Aber ich habe eine Frage: warum kann ich {Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)} schreiben? Mit { wird ein Perl Befehl ausgefuert, aber Log 1 ist ein FHEM Befehl. Haette ich nicht fhem("Log 2  Log 1, "Das at hat ausgeloest. usw usw schreiben sollen????

Wie auch immer, Ergebnis: Ja, {Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)} funktioniert und schreibt im Log :o

Anfänger "Blödsinn" hier gelöscht (Frage: warum erscheint diese Zeile nicht im Event Monitor ??? ):


noch mehr Anfänger "Blödsinn" hier gelöscht


TRIGGERTIME_FMT 2021-08-30 12:23:16

Internals:
   COMMAND    { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)}
}
   DEF        *{sunset(-30708,"12:00","23:00")}
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)}
}

   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_TestENS
   NR         447
   NTM        12:23:16
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 12:23:16
   TIMESPEC   {sunset(-30708,"12:00","23:00")}
   TRIGGERTIME 1630318996
   TRIGGERTIME_FMT 2021-08-30 12:23:16
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630318887.26757
           VALUE      Next: 12:23:16
   READINGS:
     2021-08-30 12:21:27   state           Next: 12:23:16



Ergebnis im Log gefunden!
2021.08.30 12:23:16.001 1: Das at hat ausgeloest. Der Shellywert war 100




HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

#6
Log ist kein FHEM Befehl sondern ein Perl Funktion von FHEM https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Log
Im Event Monitor werden Events angezeigt, Eine Fehlermeldung wirft keinen Event ...
In deinem Test fehlt jetzt aber etwas!
Im Fehler steht
Zitat{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ set Shelly25.SZ_Links pct 80 }
Da fehlt der Funktionsaufruf: fhem("FHEM befehl")

Das ist nicht der Code den Du oben gezeigt hast!? Wenn dem nicht so ist, nimm die (Über)Struktur aus der Definition! Alle Zeilenumbrüche raus:
defmod RolladenRunter_Test at *{sunset(0,"17:00","23:00")} { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100) { fhem("set Shelly25.SZ_Rechts pct 5")} }
Vielleicht hat der Parser ein Problem ?
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

Manos


Sorry Otto, es war Blödsinn von mir, zu viele Versuche...  ::)

OK, wir wissen, Perl wird ausgefuehrt ( {Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)} )

Jetzt mit (korrekt) { fhem("set Shelly25.SZ_Links pct 80") } das Ergebniss:

Internals:
   COMMAND    { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set Shelly25.SZ_Links pct 80") }
}
   DEF        *{sunset(-23379,"12:00","23:00")}
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set Shelly25.SZ_Links pct 80") }
}

   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_TestENS
   NR         447
   NTM        14:25:25
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 14:25:25
   TIMESPEC   {sunset(-23379,"12:00","23:00")}
   TRIGGERTIME 1630326325
   TRIGGERTIME_FMT 2021-08-30 14:25:25
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630326215.89751
           VALUE      Next: 14:25:25
   READINGS:
     2021-08-30 14:23:35   state           Next: 14:25:25


Event monitor:
2021-08-30 14:23:35.899 at RolladenRunter_TestENS Next: 14:25:25
2021-08-30 14:23:35.911 Global global MODIFIED RolladenRunter_TestENS
2021-08-30 14:25:25.009 at RolladenRunter_TestENS Next: 14:23:10

Und im Log finde ich nur:
2021.08.30 14:25:25.001 1: [Shelly_Set] please set the maxtime attribute for proper operation

Diese Fehler Meldung bekomme ich aber überall, auch wenn ich den IF Befehl über die FHEM Kommandozeile eingebe (Unterschied: über die FHEM Kommandozeile es funktioniert).

Ich habe jetzt eine "kranke" Idee Otto:
Wie kann ich den {Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)} ueber fhem("....")}  eingeben?
(mit doppelten Anführungszeichen bekomme ich Syntax Error)
Ich habe es gekuerz und einfachen Anführungszeichen { fhem("{Log 1, 'Das at hat ausgeloest. Der Shellywert war'} ") }

Siehe da, es funktioniert!

Internals:
   COMMAND    { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("{Log 1, 'Das at hat ausgeloest. Der Shellywert war'} ") }
}
   DEF        *{sunset(-21527,"12:00","23:00")}
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("{Log 1, 'Das at hat ausgeloest. Der Shellywert war'} ") }
}

   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_TestENS
   NR         447
   NTM        14:56:17
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 14:56:17
   TIMESPEC   {sunset(-21527,"12:00","23:00")}
   TRIGGERTIME 1630328177
   TRIGGERTIME_FMT 2021-08-30 14:56:17
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630328067.75423
           VALUE      Next: 14:56:17
   READINGS:
     2021-08-30 14:54:27   state           Next: 14:56:17
Attributes:


Ergebnis:
2021.08.30 14:56:17.001 1: Das at hat ausgeloest. Der Shellywert war


Und jetzt verstehe ich die Welt nicht mehr (macht nichts, die habe ich sowieso vorher nicht verstanden...)
Ich habe es mit einem anderen Aktor probiert (meine Tasmotas)


Internals:
   COMMAND    { if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set SP111.03 on-for-timer 10") }
}
   DEF        *{sunset(-20833,"12:00","23:00")}
{ if (ReadingsVal("Shelly25.SZ_Rechts","pct",0) eq 100)
{ fhem("set SP111.03 on-for-timer 10") }
}
   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_TestENS
   NR         447
   NTM        15:07:51
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 15:07:51
   TIMESPEC   {sunset(-20833,"12:00","23:00")}
   TRIGGERTIME 1630328871
   TRIGGERTIME_FMT 2021-08-30 15:07:51
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630328762.61126
           VALUE      Next: 15:07:51
   READINGS:
     2021-08-30 15:06:02   state           Next: 15:07:51


Ergebniss:
{ fhem("set SP111.03 on-for-timer 10") } funktioniert und die Lampe geht an!!!!!


Also Zusammenfassung:
AT Befehl
1. mit fester Uhrzeit (*20:00:00) und Perl IF und fhem("...") funktioniert wenn { fhem("set Shelly25.SZ_Links pct 80")}
2. mit Perl Zeitfunktion ( {sunset(0,"12:00","23:00")} ), und Perl IF, und fhem("perl-funktion") funktioniert
3. mit Perl Zeitfunktion ( {sunset(0,"12:00","23:00")} ), und Perl IF, und fhem("...") funktioniert nicht wenn { fhem("set Shelly25.SZ_Links pct 80")}

aber, aber, aber.....
4. mit Perl Zeitfunktion ( {sunset(0,"12:00","23:00")} ), und Perl IF, und fhem("perl-funktion") funktioniert wenn { fhem("set SP111.03 on-for-timer 10") }

Ich mache bestimmt etwas ganz dummes, aber was????
warum macht die Zeiteingabe (feste Zeit vs sunset) den Unterschied?

Hier ist mein Shelly25.SZ_Links
Internals:
   DEF        192.168.xxx.xxx
   DURATION   0

   FVERSION   36_Shelly.pm:v3.3.0-s24222/2021-04-11
   INTERVAL   60
   MOVING     stopped
   NAME       Shelly25.SZ_Links
   NR         282
   SHELLYID   shellyswitch25-xxxxxxx
   STATE      stopped
   TARGETPCT  100
   TCPIP      192.168.xxx.xxx
   TYPE       Shelly
   Helper:
     DBLOG:
       pct:
         Logdb:
           TIME       1630328099.82141
           VALUE      100
       position:
         Logdb:
           TIME       1630328099.82141
           VALUE      open
       power:
         Logdb:
           TIME       1630328099.82141
           VALUE      0
       state:
         Logdb:
           TIME       1630328099.82141
           VALUE      stopped
   READINGS:
     2020-11-03 19:28:53   cloud           disabled
     2021-08-30 14:54:55   energy_0        81.6
     2021-07-29 15:58:11   firmware        v1.11.0
     2021-08-30 14:54:59   last_dir        up
     2021-08-30 13:35:08   network         connected to 192.168.xxx.xxx
     2021-08-30 14:54:59   pct             100
     2021-08-30 14:54:59   position        open
     2021-08-30 14:54:59   power           0
     2021-08-30 14:54:55   power_0         124.41
     2021-08-30 14:54:59   state           stopped
     2020-11-03 19:28:53   stop_reason     normal
Attributes:
   DbLogExclude .*
   DbLogInclude state,position,pct,power,stop_reason
   cmdIcon    open:fts_shutter_up closed:fts_shutter_down half:fts_shutter_50

   devStateIcon {my
$alivecolor='fts_shutter_updown' if (ReadingsVal($name, "state", "ERROR") eq "stopped");
$alivecolor='fts_shutter_up@red' if (ReadingsVal($name, "state", "ERROR") eq "moving_up");
$alivecolor='fts_shutter_up@red' if (ReadingsVal($name, "state", "ERROR") eq "opening");
$alivecolor='fts_shutter_down@red' if (ReadingsVal($name, "state", "ERROR") eq "closing");
$alivecolor='fts_shutter_down@red' if (ReadingsVal($name, "state", "ERROR") eq "moving_down");
"
" . FW_makeImage("$alivecolor","WLAN_Status.0") . " pos.:" . ReadingsVal($name,"pct",0) . "%
" }
   icon       fts_shutter
   interval   60
   mode       roller
   model      shelly2.5
   room       Bedroom,HUEDevice,Rolladen
   webCmd     :open:closed:half:stop:pct



HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

#8
ich beharre auf einen Test nach meiner Empfehlung nach Antwort #6 :)
Man könnte auch mal mit verbose 5  das Log anschauen.

Zu der Frage:
ZitatWie kann ich den {Log 1, "Das at hat ausgeloest. Der Shellywert war ".ReadingsNum("Shelly25.SZ_Rechts","pct",0)} ueber fhem("....")}  eingeben?
Du meinst das so?
{fhem("{Log 1, 'Das at hat ausgeloest. Der Shellywert war '.ReadingsNum('Shelly25.SZ_Rechts','pct',0)}")}
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

Manos

@Otto: OK, OK  ;D    Du hast dir aber falsche Hoffnungen gemacht  ;D

Ich musste andere Rolladen finden, weil wenn ich in dieser Uhrzeit mit den Rolladen im Schlaffzimmer spiele, bin ich bald ein geschiedene Man..  ;)

Ergebnis ist das gleiche: es funktioniert nicht.

Eine Linie defmod RolladenRunter_TestENS at *{sunset(6177,"12:00","23:00")} { if (ReadingsVal(" Shelly25.ENS","pct",0) eq 100) { fhem("set Shelly25.ENS pct 95") } }

Internals:
   COMMAND    { if (ReadingsVal(" Shelly25.ENS","pct",0) eq 100) { fhem("set Shelly25.ENS pct 95") } }
   DEF        *{sunset(6177,"12:00","23:00")} { if (ReadingsVal(" Shelly25.ENS","pct",0) eq 100) { fhem("set Shelly25.ENS pct 95") } }

   FVERSION   90_at.pm:0.241290/2021-04-02
   NAME       RolladenRunter_TestENS
   NR         447
   NTM        22:38:01
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 22:38:01
   TIMESPEC   {sunset(6177,"12:00","23:00")}
   TRIGGERTIME 1630355881
   TRIGGERTIME_FMT 2021-08-30 22:38:01
   TYPE       at
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1630355818.96819
           VALUE      Next: 22:38:01
   READINGS:
     2021-08-30 22:36:58   state           Next: 22:38:01
Attributes:


Log mit Verbose 5

2021.08.30 22:38:02.032 1: [Freezemon] SystemMon: possible freeze starting at 22:38:00, delay is 2.031 possibly caused by: tmr-VOLKSZAEHLER_GetStatus(Verbrauch_aktuell_WPumpe)
2021.08.30 22:38:02.034 5: exec at command RolladenRunter_TestENS
2021.08.30 22:38:02.035 5: redefine at command RolladenRunter_TestENS as *{sunset(6177,"12:00","23:00")} { if (ReadingsVal(" Shelly25.ENS","pct",0) eq 100) { fhem("set Shelly25.ENS pct 95") } }
2021.08.30 22:38:05.104 1: [Freezemon] SystemMon: possible freeze starting at 22:38:03, delay is 2.103 possibly caused by: tmr-at_Exec(RolladenRunter_TestENS) tmr-VOLKSZAEHLER_GetStatus(Verbrauch_aktuell_Haus)


HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

Ok ich gebe auf. Keine Ahnung was da passiert. Den einen Shelly Switch, den ich habe, betreibe ich mit mqtt.

Vielleicht hat jemand mit shelly Modul Lust das Problem nachzustellen :)
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

Manos

#11
Danke fuer deine Zeit und Mühe Otto.

Ich bin schon beruhigt, dass es nicht irgendwelche "Dummheit" von mir ist.

Fuer die jenigen die "Spass" mit der {sunset(... Formel haben wollen, hier ist eine kleine EXCEL Datei, die die richtige Zahl Sekunden (vor-, oder nach- Sonnenuntergang) automatisch berechnet.


EDIT: vereinfachte EXCEL Tabelle
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Prof. Dr. Peter Henning

Und warum sollte man ein Spreadsheet nehmen, wenn dafür in FHEM fertige Module und Hilfsfunktionen existieren?

LG

pah

betateilchen

Zitat von: Prof. Dr. Peter Henning am 01 September 2021, 19:14:32
Und warum sollte man ein Spreadsheet nehmen, wenn dafür in FHEM fertige Module und Hilfsfunktionen existieren?

Weil das Verwenden vorhandener Funktionalitäten vielen Anwendern (insbesondere Anfängern) viel zu einfach wäre. Vermutlich eine masochistisch veranlagte Spezies.

ReadingsVal(" Shelly25.ENS","pct",0)

Ich könnte mir vorstellen, dass da ein Leerzeichen (beim deviceName) zuviel ist, was dazu führt, dass immer der default-Wert 0 gezogen wird.
Und dann passiert halt nix - works as designed.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Manos

Zitat von: Prof. Dr. Peter Henning am 01 September 2021, 19:14:32
Und warum sollte man ein Spreadsheet nehmen, wenn dafür in FHEM fertige Module und Hilfsfunktionen existieren?

LG

pah

Beeindruckend, Doktor Überheblich!

Danke, dass du dir die Zeit genommen hast deine Weisheit mit uns "Sterblichen" (Anfänger Forum) zu teilen.
Vergnügungsfaktor 10/10
Nutzfaktor 0/10

und wo bitte schön, ist dieser Hilfsfunktion die mir helfen kann, die meine aktuelle Uhrzeit (+2Minuten) vor Sonnenuntergang zu berechnen?

HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)