72_FRITZBOX.pm ab Version 08.00.00

Begonnen von elektron-bbs, 09 Oktober 2024, 17:28:16

Vorheriges Thema - Nächstes Thema

frank

#75
moin,

Zitat von: JoWiemann am 22 Februar 2025, 17:10:39was ist denn ein Astro?
jürgen hat es richtig kombiniert:
Zitatich vermute, dass Frank den Punkt "Astronomisch" unter "Zeitschaltung aktiv" meint (s. Bild)

hier meine prefdef daten:
saved preDef for device:16 with name:astroHomeOn
$VAR1 = {
          'countdown_off_hh' => '0',
          'countdown_off_mm' => '0',
          'countdown_onoff' => '0',
          'device' => '16',
          'device_name_category' => 'SOCKET',
          'device_web_site' => 'AUTOMATION',
          'graphState' => '1',
          'latitude' => 'xx.xx',
          'longitude' => 'xx.xx',
          'stand_by_duration' => '',
          'stand_by_power' => '',
          'sunrise' => 'off',
          'sunrise_off_absolute' => undef,
          'sunrise_off_duration' => '00:00',
          'sunrise_off_option' => 'absolute',
          'sunrise_off_relative' => '00:00',
          'sunrise_off_relative_negative' => 'false',
          'sunrise_on_option' => 'relativ',
          'sunrise_on_relative' => '00:00',
          'sunrise_on_relative0' => '00',
          'sunrise_on_relative1' => '00',
          'sunrise_on_relative_negative' => 'false',
          'sunset' => 'on',
          'sunset_off_duration' => '00:00',
          'sunset_off_option' => 'sunrise',
          'sunset_off_relative' => '00:00',
          'sunset_off_relative_negative' => 'false',
          'sunset_on_option' => 'relativ',
          'sunset_on_relative' => '02:30',
          'sunset_on_relative0' => '02',
          'sunset_on_relative1' => '30',
          'sunset_on_relative_negative' => 'false',
          'switchautomatic' => 'on',
          'switchtimer' => 'sun_calendar',
          'timer_item_0' => '0130;1;9',
          'timer_item_1' => '0145;0;9'
        };

sunrise_off_absolute ist im formular auf der webseite "00:00", aber inaktiv, da der ganze zweig sunrise inaktiv ist.
ich denke die zeit wird im modul für den fall "aktiv" ermittelt.


gruss frank

edit:
beim aufruf von "get <name> smartHomePreDef <deviceID> <Saved-PreDef-Name>" gibt es ebenfalls eine warning an einer 3. stelle:
2025.02.23 13:15:54.013 1: PERL WARNING: Use of uninitialized value $valueHash{"sunrise_off_absolute"} in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 11462.
2025.02.23 13:15:54.018 1: stacktrace:
2025.02.23 13:15:54.022 1: main::__ANON__ called by ./FHEM/72_FRITZBOX.pm (11462)
2025.02.23 13:15:54.026 1: main::FRITZBOX_Get_SmartHome_Devices_List called by ./FHEM/72_FRITZBOX.pm (3168)
2025.02.23 13:15:54.031 1: main::FRITZBOX_Get called by fhem.pl (3988)
2025.02.23 13:15:54.034 1: main::CallFn called by fhem.pl (2038)
2025.02.23 13:15:54.036 1: main::CommandGet called by fhem.pl (1285)
2025.02.23 13:15:54.039 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2869)
2025.02.23 13:15:54.041 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (987)
2025.02.23 13:15:54.043 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (610)
2025.02.23 13:15:54.046 1: main::FW_Read called by fhem.pl (3988)
2025.02.23 13:15:54.048 1: main::CallFn called by fhem.pl (789)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

hallo jörg,

die ursache beim ledSetting problem ist hash/helper/infoActive, da nicht gesetzt.
im list habe ich einen zweiten key hash/fhem/helper/infoActive gefunden, der allerdings gesetzt ist.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo,

anbei eine neue Beta.

  • - ledSetting müsste behoben sein. Hatte in zwei Codezeilen fhem->helper->infoActive nicht durch helper->infoActive ersetzt.
  • - Astro sollte auch behoben sein. Ich hoffe, ich habe jetzt alle Fallklassen im Griff (AVM könnte es ja auch einfacher machen)

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

frank

hallo jörg,


Zitat von: frank am 22 Februar 2025, 11:57:57moin jörg,

wieder einen schritt weiter.  :)


die daten werden nun wohl korrekt gefunden.
allerdings erzeugt "get <name> smartHomePreDef <deviceID> <Saved-PreDef-Name>" wieder einen absturz.

wenn ich in der absturzmeldung den json string durch "json_string" ersetze, lautet die meldung:
Can't locate object method "decode_json" via package "json_string" (perhaps you forgot to load  "json_string"?) at ./FHEM/72_FRITZBOX.pm line 11456.
der "klammertrick" von neulich für encode_json hilft auch hier.
nach ändern der zeile 11456 funktioniert nun endlich "get <name> smartHomePreDef <deviceID> <Saved-PreDef-Name>" ohne absturz.
         my %valueHash = %{ decode_json($jsonStr) };

weitere tests mit sichern unterschiedlicher einstellungen und anschliessendes wechseln über prefDefLoad funktioniert nun super, danke!


zum löschen meiner korrupten prefDefs habe ich bisher noch keinen cmd gefunden.
editieren und löschen der datei smart_home_prefdefs.txt ist ja ausdrücklich verboten.
gibt es eine lösung, die ich noch nicht gefunden habe?

wo werden eigentlich die konfigurationen gespeichert, fritzbox oder device?
die hilfe zu prefDefLoad sagt in der fritzbox.
dann würden aber die switches ohne fritzbox nicht mehr automatisch schalten.
ist das richtig?


gruss frank
hast du diesen post nicht gesehen?
ich vermisse die klammern.


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

#79
Zitat von: frank am 24 Februar 2025, 12:53:02hast du diesen post nicht gesehen?
ich vermisse die klammern.
gruss frank

Hallo Frank,

habe ich tatsächlich übersehen. Sorry.

Anbei jetzt mit Klammer.

Zitat von: frank am 24 Februar 2025, 12:53:02wo werden eigentlich die konfigurationen gespeichert, fritzbox oder device?

Gespeichert wird in der FritzBox oder Smart Gateway. Je nachdem, welches AVm Gerät Du wählst. Die FB oder das Gateway übertragen dann an das SamrtHome Gerät. Somit hat die FritzBox den gültigen Datensatz. Das SH Gerät eine lokale Kopie.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Hallo,

ich habe noch ein:
set <name> smartHome <deviceID> <preDefDel:nameEinstellung>
eingebaut.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

frank

hallo jörg,

preDefDel funktioniert prima.

##########

preDefLoad funktioniert aber nicht mehr, seitdem du bei astro änderungen vorgenommen hast.
2025.02.25 10:27:30.469 3: [fritzbox | 7490 | 113.07.60 | Set.1277] - BASIC:set fritzbox smartHome 16 preDefLoad:week2s
2025.02.25 10:27:43.510 2: [fritzbox | 7490 | 113.07.60 | call_LuaData.13042] - SIGNIFICANT:RegEx matches not page home_auto_edit_view:
{"data":{"redirect":{"page":"home_auto_edit_view","params":{"device":16}},"apply":"ok"}}
2025.02.25 10:27:43.516 2: [fritzbox | 7490 | 113.07.60 | Set.1561] - SIGNIFICANT:SmartHome Device 16 - ERROR: RegEx matches not page home_auto_edit_view
2025.02.25 10:27:43.521 2: [fritzbox | 7490 | 113.07.60 | Helper_retMsg.1249] - SIGNIFICANT:ERROR: RegEx matches not page home_auto_edit_view

saved preDef for device:16 with name:week2s
$VAR1 = {
          'countdown_off_hh' => '0',
          'countdown_off_mm' => '0',
          'countdown_onoff' => '0',
          'device' => '16',
          'device_name_category' => 'SOCKET',
          'device_web_site' => 'AUTOMATION',
          'graphState' => '1',
          'latitude' => 'xx.xx',
          'longitude' => 'xx.xx',
          'stand_by_duration' => '',
          'stand_by_power' => '',
          'sunrise' => 'off',
          'sunrise_off_duration' => '00:00',
          'sunrise_off_option' => 'manually',
          'sunrise_off_relative' => '00:00',
          'sunrise_off_relative_negative' => 'false',
          'sunrise_on_option' => 'relativ',
          'sunrise_on_relative' => '00:00',
          'sunrise_on_relative0' => '00',
          'sunrise_on_relative1' => '00',
          'sunrise_on_relative_negative' => 'false',
          'sunset' => 'off',
          'sunset_off_duration' => '00:00',
          'sunset_off_option' => 'sunrise',
          'sunset_off_relative' => '00:00',
          'sunset_off_relative_negative' => 'false',
          'sunset_on_option' => 'relativ',
          'sunset_on_relative' => '00:00',
          'sunset_on_relative0' => '00',
          'sunset_on_relative1' => '00',
          'sunset_on_relative_negative' => 'false',
          'switchautomatic' => 'on',
          'switchtimer' => 'weekly',
          'timer_item_0' => '0130;1;9',
          'timer_item_1' => '0145;0;9'
        };

$VAR1 = {
          'ShowEnergyStat' => '24h',
          'device_name_category' => 'SOCKET',
          'device_web_site' => 'GENERAL',
          'interval' => 'daily',
          'led_active' => '1',
          'mailto' => 'xxxxxxxxxx',
          'manuell_switch_active_local' => '1',
          'manuell_switch_active_uiapp' => '1',
          'switch_default_state' => '2',
          'ule_device_acdc_rate' => '25,00',
          'ule_device_co2_emission' => '0,550',
          'ule_device_name' => 'dect01'
        };

###########

ledsetting notifyoff funktioniert halbwegs wieder.
rote led geht aus, die notify readings werden gelöscht, aber es werden keine "solved" readings mehr erstellt.
feature oder bug?

2025.02.24 18:11:18.795 2: [fritzbox | 7490 | 113.07.60 | Readout_Run_Web_LuaData.4852] - SIGNIFICANT:rote LED Info: keine weitere Information vorhanden mit ID: 8_1
2025.02.24 18:11:18.798 3: [fritzbox | 7490 | 113.07.60 | Readout_Run_Web_LuaData.4859] - BASIC:hmtl_links:
 <html>INTERNET NO_CONNECTION <a href='/fhem?cmd=set%20fritzbox%20ledSetting%20notifyoff:8_1&fwcsrf=csrf_158960033734833' target='_self'>&lt;quittieren&gt;</a></html>
 <html><div id='button'><button id='dis' onclick='JS:FW_okDialog("keine weitere Information vorhanden")'>Information anzeigen</button></div></html>
2025.02.24 18:11:43.849 3: [fritzbox | 7490 | 113.07.60 | Set.1277] - BASIC:set fritzbox ledSetting notifyoff:8_1
2025.02.24 18:11:49.254 2: [fritzbox | 7490 | 113.07.60 | Set.2174] - SIGNIFICANT:ledsetting notifyoff:8_1 -
$VAR1 = {
...... 370 zeilen overview json!!!!
        };

2025.02.24 18:11:49.281 3: n_html_test return value: ledsetting  notifyoff:8_1 - applied

die 4. meldung erzeugt jedes mal über 370 zeilen im log! wie wäre verbose > 3?
warum überhaupt fehler?
die erfolgsmeldung wird vom notify gemeldet, ist das ein problem?


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo Frank,

  • preDefLoad: Knoten im Hirn, habe ich bereinigt
  • ledSetting: War noch ein verbose 2 für Debbuging. Ist jetzt auf 5 gesetzt
  • ledSetting: Mit dem Quittieren werden die Readings gelöscht. Das - solved - kommt nur, wenn die FritzBox vorher schon die Info zurück nimmt. Dann kommt ja auch keine Info mehr über die luaData Abfrage. Ich kann aber gerne anstatt die Readings direkt zu löschen das - solved - setzen. Dann bleiben die Readings stehen, bis sie entweder wieder durch eine Info der FritzBox überschrieben werden oder sie noch einmal quittiert werden. Wie Du möchtest.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

frank

hallo jörg,

hartes geschäft.  ;)


preDefLoad funktioniert nun halbwegs:
unterschiedliche wochenpläne werden geladen.

zusätzlich neu: der wert für "stand_by_power" wird falsch gespeichert.
wenn ich 10 watt in der fb konfiguriere, wird nur 1 watt in fhem gespeichert und in die fb zurückgeschrieben.

bei astroschaltungen hat der "automatical" teil noch ein problem und wird nicht geladen.
sowohl mit option ":A", als auch ohne option, also "all".
vor deiner "reparatur" wurden sie geladen, aber fhem zeigte warnungen.
2025.02.25 15:56:57.533 3: [fritzbox | 7490 | 113.07.60 | Set.1277] - BASIC:set fritzbox smartHome 16 preDefLoad:astroHome01:A
2025.02.25 15:57:04.285 2: [fritzbox | 7490 | 113.07.60 | Set.1636] - SIGNIFICANT:SmartHome Device 16 - $VAR1 = { 'data' => { 'apply' => 'valerror', 'valerror' => { 'alert' => "Es ist ein Fehler aufgetreten. (notfound) Bitte \x{c3}\x{bc}berpr\x{c3}\x{bc}fen Sie Ihre Eingabe.", 'ok' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ), 'result' => 'notfound', 'tomark' => [] } }, 'sid' => '230e2b6f16aee85c', 'sidNew' => 0 };
2025.02.25 15:57:04.339 2: [fritzbox | 7490 | 113.07.60 | Helper_retMsg.1249] - SIGNIFICANT:ERROR: ID:16 - preDef not loaded with name astroHome01 A

der "general" teil lässt sich laden:
2025.02.26 09:10:54.501 3: [fritzbox | 7490 | 113.07.60 | Set.1277] - BASIC:set fritzbox smartHome 16 preDefLoad:astroHome01:G

Zitat von: JoWiemann am 25 Februar 2025, 13:32:26ledSetting: Mit dem Quittieren werden die Readings gelöscht. Das - solved - kommt nur, wenn die FritzBox vorher schon die Info zurück nimmt. Dann kommt ja auch keine Info mehr über die luaData Abfrage. Ich kann aber gerne anstatt die Readings direkt zu löschen das - solved - setzen. Dann bleiben die Readings stehen, bis sie entweder wieder durch eine Info der FritzBox überschrieben werden oder sie noch einmal quittiert werden. Wie Du möchtest.
ok, macht auch sinn.
hat irgendwie aber alles vor- und nachteile.

nach langem überlegen würde ich im moment sagen, dass grundsätzlich die "solved" meldung erscheinen sollte, wenn die rote led aus geht.
erstens hat man ein event bei erfolg und zweitens hat man die möglichkeit das reading zu behalten, um zu sehen, wann zurückgesetzt wurde.

beim manuellen quittieren über den link im reading gibt es zunächst ein zusätzliches, falsches "alarm" event trotz event-on-change.
wird vermutlich erst gelöscht, dann wieder gesetzt und anschliessend auf "solved" gesetzt.

eventmonitor mit log:
2025.02.26 07:54:40.331 3: [fritzbox | 7490 | 113.07.60 | Set.1277] - BASIC:set fritzbox ledSetting notifyoff:8_1
2025-02-26 07:54:48.944 FRITZBOX fritzbox box_notify_8_1_info:
2025-02-26 07:54:48.944 FRITZBOX fritzbox box_notify_8_1: INTERNET NO_CONNECTION <quittieren>

2025-02-26 07:55:37.325 FRITZBOX fritzbox box_notify_8_1: - solved - <quittieren>
2025-02-26 07:55:37.325 FRITZBOX fritzbox box_notify_8_1_info:
bei den "box_notify_8_1_info:"-events fehlt hier im post der button. im eventmonitor ist er korrekt zu sehen.


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

#84
Zitat von: frank am 26 Februar 2025, 10:06:00hallo jörg,

hartes geschäft.  ;)


preDefLoad funktioniert nun halbwegs:
unterschiedliche wochenpläne werden geladen.

zusätzlich neu: der wert für "stand_by_power" wird falsch gespeichert.
wenn ich 10 watt in der fb konfiguriere, wird nur 1 watt in fhem gespeichert und in die fb zurückgeschrieben.

Lustig. Durch die data.lua wird folgendes geliefert:
'standby' => {
                                                                                     'powerInWatt' => 1,
                                                                                     'seconds' => 600,
                                                                                     'isEnabled' => $VAR1->{'data'}{'devices'}[0]{'isEditable'}
                                                                                   }

Mehrfach jetzt getestet. Immer um den Faktor 10 zu klein. 100,25 werden als 10,025 geliefert.

Ich schaue mir noch Astro an, dann kommt eine neue Version.
PS: Wenn man als Parameterwert "relativ" und nicht "relative" angibt ....

Jetzt noch ledSetting ...

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

frank

Zitat von: JoWiemann am 26 Februar 2025, 10:43:50Mehrfach jetzt getestet. Immer um den Faktor 10 zu klein. 100,25 werden als 10,025 geliefert.
ganz wirr wird es, wenn ich in der fritzbox 5,55 watt für 1 minute eingebe.
da hätte ich jetzt 1 watt für 1 minute erwartet, da min watt ja 1 watt ist.

aber:
          'stand_by_duration' => '0.555',
          'stand_by_power' => 1,
schöner mist.


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Zitat von: frank am 26 Februar 2025, 12:16:21[
ganz wirr wird es, wenn ich in der fritzbox 5,55 watt für 1 minute eingebe.
da hätte ich jetzt 1 watt für 1 minute erwartet, da min watt ja 1 watt ist.

aber:
          'stand_by_duration' => '0.555',
          'stand_by_power' => 1,
schöner mist.


gruss frank

Hallo Frank,

Du must einfach power und duration tauschen. Da war noch ein Fehler in der Zuweisung 😩
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Hallo Frank,

anbei eine neue Beta. Ich hoffe es passt jetzt alles.

  • stand_by_power: korrigiert
  • preDefLoad: korrigiert
  • ledSetting: Wird per Hand quittiert, dann werden die Readings mit  - solved by click - makiert. Wird durch die FB quittiert, dann werden die Readings mit - solved by FB - makiert. Bei "solved" Readings führt das quittieren zum Löschen der Readings.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Hallo Frank,

anbei noch eine Änderung. Bei - solved by FB - wurde der Infor-Text nicht mitgenommen. Sollte jetzt gefixed sein.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Hallo Frank,

wenn man mal auf die Schnelle...

Anbei eine neue Version für den Info Text.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM