Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Absturz in fhem Adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    930

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Absturz in fhem Adapter

Scheduled Pinned Locked Moved Error/Bug
49 Posts 2 Posters 3.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    aski71
    wrote on last edited by
    #1

    Hallo,

    als ich gerade ein Skript gebaut habe, das bei Statusänderung eines fhem-Dummy devices getriggert wird, ist mir folgendes aufgefallen:

    Jedesmal, wenn ich das Dummy-Device umschalte, passiert folgender Fehler, der Fhem-Adapter stürzt ab und wird neu gestartet:

    fhem.0	2018-12-29 21:57:47.998	error	TypeError: Cannot read property 'replace' of undefined at parseEvent (/opt/iobroker/node_modules/iobroker.fhem/main.js:206:25) at Telnet.telnetIn.on.data (/opt/iobroker/node_modules/iobroker.f
    fhem.0	2018-12-29 21:57:47.997	error	uncaught exception: Cannot read property 'replace' of undefined
    
    

    Weiß jemand Abhilfe?

    Danke und Gruß

    Alex

    1 Reply Last reply
    0
    • LausiDL Offline
      LausiDL Offline
      LausiD
      wrote on last edited by
      #2

      Hallo Alex,

      welche Version hat FHEM Adapter?

      Aktualisiere den Adapter mal von github…

      Alternativ:

      Eingabe jsonlist2 [dein fhem-Dummy device] und stell das Ergebnis hier ein

      Gruß

      LausiD

      Doku zum FHEM Adapter
      Aktuelles zum FHEM Adapter
      Test FHEM Adapter

      1 Reply Last reply
      0
      • A Offline
        A Offline
        aski71
        wrote on last edited by
        #3

        Ich installiere alle Adapter vom Repository: latest.

        Der fhem Adapter hat Version 1.1.1

        jsonlist2 Ergebnis:

        {
          "Arg":"Wecker",
          "Results": [
          {
            "Name":"Wecker",
            "PossibleSets":"on off mixed",
            "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 readingList setList useSetExtensions disable disabledForIntervals event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Home3D genericDeviceType:ignore,switch,outlet,light,blind,contact,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 siriName sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
            "Internals": {
              "NAME": "Wecker",
              "NR": "307",
              "STATE": "off",
              "TYPE": "dummy"
            },
            "Readings": {
              "hueAlexLichtWecker": { "Value":"disabled", "Time":"2018-12-29 22:17:59" },
              "hueAlexLichtWeckerReturn": { "Value":"[\n  {\n    'success' => {\n                   '/schedules/4/status' => 'disabled'\n                 }\n  }\n]\n", "Time":"2018-12-29 22:17:59" },
              "hueElkeLichtWecker": { "Value":"disabled", "Time":"2018-12-29 22:17:59" },
              "hueElkeLichtWeckerReturn": { "Value":"[\n  {\n    'success' => {\n                   '/schedules/2/status' => 'disabled'\n                 }\n  }\n]\n", "Time":"2018-12-29 22:17:59" },
              "hueSchedulesList": { "Value":"{\n  '2' => {\n           'localtime' => 'W124/T05:50:00',\n           'description' => 'L_04_A9Aeu_start wake up',\n           'created' => '2018-11-05T05:49:50',\n           'command' => {\n                          'method' => 'PUT',\n                          'address' => '/api/r8X1c3wCpv8qMulPzRzSGV-OiN4QrHKq/sensors/4/state',\n                          'body' => {\n                                      'flag' => bless( do{\u005c(my $o = 1)}, 'JSON::PP::Boolean' )\n                                    }\n                        },\n           'time' => 'W124/T04:50:00',\n           'name' => \"Nat\u005cx{fc}rlich Aufwachen Elke\",\n           'recycle' => $VAR1->{'2'}{'command'}{'body'}{'flag'},\n           'status' => 'disabled'\n         },\n  '4' => {\n           'localtime' => 'W124/T06:29:00',\n           'description' => 'L_04_njqbA_start wake up',\n           'command' => {\n                          'body' => {\n                                      'flag' => $VAR1->{'2'}{'command'}{'body'}{'flag'}\n                                    },\n                          'address' => '/api/r8X1c3wCpv8qMulPzRzSGV-OiN4QrHKq/sensors/5/state',\n                          'method' => 'PUT'\n                        },\n           'created' => '2018-11-07T23:03:18',\n           'time' => 'W124/T05:29:00',\n           'recycle' => $VAR1->{'2'}{'command'}{'body'}{'flag'},\n           'status' => 'disabled',\n           'name' => \"Nat\u005cx{fc}rlich Aufwachen Alex\"\n         },\n  '3' => {\n           'created' => '2018-11-05T05:49:50',\n           'command' => {\n                          'body' => {\n                                      'scene' => 'V080xDoezs6QZjg'\n                                    },\n                          'address' => '/api/r8X1c3wCpv8qMulPzRzSGV-OiN4QrHKq/groups/0/action',\n                          'method' => 'PUT'\n                        },\n           'time' => 'PT00:01:00',\n           'starttime' => '2018-12-27T04:50:00',\n           'name' => 'L_04_A9Aeu',\n           'recycle' => $VAR1->{'2'}{'command'}{'body'}{'flag'},\n           'status' => 'disabled',\n           'autodelete' => bless( do{\u005c(my $o = 0)}, 'JSON::PP::Boolean' ),\n           'localtime' => 'PT00:01:00',\n           'description' => 'L_04_A9Aeu_trigger end scene'\n         },\n  '1' => {\n           'description' => 'Resets dimmer switch scene cycler',\n           'localtime' => 'PT00:00:10',\n           'autodelete' => $VAR1->{'3'}{'autodelete'},\n           'recycle' => $VAR1->{'2'}{'command'}{'body'}{'flag'},\n           'status' => 'disabled',\n           'name' => 'Dimmer Switch 2 Reset',\n           'starttime' => '2018-12-17T14:41:39',\n           'time' => 'PT00:00:10',\n           'created' => '2018-12-17T14:41:39',\n           'command' => {\n                          'address' => '/api/mIIFI0nT5fJDjWzXLJngqo7jporLBGfNK9DI7HRr/sensors/3/state',\n                          'body' => {\n                                      'status' => 0\n                                    },\n                          'method' => 'PUT'\n                        }\n         },\n  '5' => {\n           'localtime' => 'PT00:01:00',\n           'autodelete' => $VAR1->{'3'}{'autodelete'},\n           'description' => 'L_04_njqbA_trigger end scene',\n           'created' => '2018-11-07T23:03:18',\n           'command' => {\n                          'address' => '/api/r8X1c3wCpv8qMulPzRzSGV-OiN4QrHKq/groups/0/action',\n                          'body' => {\n                                      'scene' => 'rG7qkF-1HZ8nT9W'\n                                    },\n                          'method' => 'PUT'\n                        },\n           'time' => 'PT00:01:00',\n           'status' => 'disabled',\n           'recycle' => $VAR1->{'2'}{'command'}{'body'}{'flag'},\n           'starttime' => '2018-12-27T05:29:00',\n           'name' => 'L_04_njqbA'\n         }\n}\n", "Time":"2018-12-29 22:17:59" },
              "sonosSZenabled": { "Value":"0", "Time":"2018-12-29 22:17:59" },
              "state": { "Value":"off", "Time":"2018-12-29 22:17:59" }
            },
            "Attributes": {
              "devStateIcon": "on:ring@green off:ring@red mixed:ring@yellow",
              "event-on-change-reading": ".*",
              "fp_Home3D": "137,937,5,Wecker,",
              "room": "Schlafzimmer",
              "setList": "on off mixed"
            }
          }  ],
          "totalResultsReturned":1
        }
        
        
        1 Reply Last reply
        0
        • LausiDL Offline
          LausiDL Offline
          LausiD
          wrote on last edited by
          #4

          Komische Sache…du setzt das state auf on,off oder mixed?

          Doku zum FHEM Adapter
          Aktuelles zum FHEM Adapter
          Test FHEM Adapter

          1 Reply Last reply
          0
          • A Offline
            A Offline
            aski71
            wrote on last edited by
            #5

            Ich setze es manuell auf on oder off.

            Ein Skript prüft dann den Zustand mehrerer Geräte, legt diesen in den Readings ab und setzt den Status auf "mixed", falls eines der Geräte die Änderung nicht mitgegangen ist.

            Der Absturz passiert bei jeder Statusänderung.

            1 Reply Last reply
            0
            • LausiDL Offline
              LausiDL Offline
              LausiD
              wrote on last edited by
              #6

              Stausänderung in FHEM?

              Objekt sieht so aus?
              2201_wecker.png

              Also bei mir geht Änderung state in beide Richtungen mit on off mixed

              Einziger Unterschied verwende die Version von github

              Doku zum FHEM Adapter
              Aktuelles zum FHEM Adapter
              Test FHEM Adapter

              1 Reply Last reply
              0
              • A Offline
                A Offline
                aski71
                wrote on last edited by
                #7

                Ah… da ist mir vorhin schon was aufgefallen:

                Bei state wird im Wert "true" oder "false" angezeigt, statt "on", "off" oder "mixed".

                Im Screenshot fällt mir noch auf:

                Bei sonosSZenabled habe ich Rolle "text" statt "value".
                1107_bildschirmfoto_2018-12-29_um_23.41.48.png

                1 Reply Last reply
                0
                • LausiDL Offline
                  LausiDL Offline
                  LausiD
                  wrote on last edited by
                  #8

                  Mh…das ist nicht die aktuelle Version.

                  Was steht unter fhem.1.info.Info.buildDate für ein Datum?

                  Muss vor 03.12.18 sein, oder?

                  von LausiD » 03.12.2018, 00:27

                  Hallo zusammen,

                  auf github kann der Adapter mit folgenden Änderungen aktualisiert werden

                  Da state eines FHEM Device unterschiedliche Zustände/Funktionen haben kann, werden bei Bedarf im ioBroker automatisch zusätzliche Objekte angelegt.

                  1. fhem.x.Device.state enthält den Wert aus FHEM 1:1 als String

                  a. fhem.x.Device.state_switch true/false als Boolean, wenn state on oder off ist oder Possible Sets on und off enthalten.

                  Dadurch kann zB auch ein dummy als Schalter verwendet werden.

                  b. fhem.x.Device.state_boolean true/false , wenn state open/ooened/close/closed/present/absent ist.

                  c. fhem.x.Device.state_value 0/2 für die Werte von state_boolean

                  Damit sollte es in VIS viel einfacher werden :-)

                  2. Objekte mit nummerischen Inhalt werden als number angelegt

                  Doku zum FHEM Adapter
                  Aktuelles zum FHEM Adapter
                  Test FHEM Adapter

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    aski71
                    wrote on last edited by
                    #9

                    6.11.18

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      aski71
                      wrote on last edited by
                      #10

                      Habe vorhin extra nochmal mittels

                      npm install iobroker.fhem --production
                      

                      drüber gebügelt.

                      1 Reply Last reply
                      0
                      • LausiDL Offline
                        LausiDL Offline
                        LausiD
                        wrote on last edited by
                        #11

                        Alles klar :-)

                        Mach mal Aktualisierung von github

                        Wie steht hier im Kapiel 8 : https://github.com/ioBroker/ioBroker.fh … er/docs/de

                        Sorry link war falsch

                        Doku zum FHEM Adapter
                        Aktuelles zum FHEM Adapter
                        Test FHEM Adapter

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          aski71
                          wrote on last edited by
                          #12

                          Habe es trotzdem gefunden. :-)

                          Aber schräge Sache: Siehe Screenshot.

                          … und Build Date bleibt trotzdem bei 6.11.18. :shock:
                          1107_bildschirmfoto_2018-12-30_um_00.07.24.png

                          1 Reply Last reply
                          0
                          • LausiDL Offline
                            LausiDL Offline
                            LausiD
                            wrote on last edited by
                            #13

                            Neustart FHEM Adapter?

                            Noch was: Du kannst setlist noch auf "on:noArg off:noArg mixed:noArg" ändern.

                            Damit bekommst du jeweils ein Objekt als button

                            Doku zum FHEM Adapter
                            Aktuelles zum FHEM Adapter
                            Test FHEM Adapter

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              aski71
                              wrote on last edited by
                              #14

                              Sorry, mein Fehler. Neustart vergessen!

                              Jetzt steht da 17.12.18.

                              Aber: Der Absturz bleibt der gleiche. :shock:

                              Der State scheint jetzt richtig gefüllt zu werden.

                              sonosSZenabled hat weiterhin die Rolle "text"

                              Das mit noArg hab ich noch nicht gemacht.

                              1 Reply Last reply
                              0
                              • LausiDL Offline
                                LausiDL Offline
                                LausiD
                                wrote on last edited by
                                #15

                                Wir kriegen das hin :-)

                                Entweder fhem.0.info.Configurations.autoRole auf true setzen und Adapter wird automatisch neu gestartet

                                oder das Objekt Wecker löschen und Adapter neu starten

                                Doku zum FHEM Adapter
                                Aktuelles zum FHEM Adapter
                                Test FHEM Adapter

                                1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  aski71
                                  wrote on last edited by
                                  #16

                                  Ein Schritt weiter:

                                  Das Objekt scheint jetzt richtig zu sein.

                                  Habe beide Varianten probiert: autoRole auf true.

                                  Sync abgewartet.

                                  Wecker in fhem geändert.

                                  -> Trotzdem Absturz.

                                  Danach Objekt Wecker komplett gelöscht.

                                  Sync abgewartet.

                                  Wecker in fhem geändert.

                                  -> Trotzdem Absturz.

                                  :shock:

                                  1 Reply Last reply
                                  0
                                  • LausiDL Offline
                                    LausiDL Offline
                                    LausiD
                                    wrote on last edited by
                                    #17

                                    Mh….du änderst state in FEHM auf on oder off?

                                    Kannst du das Script mal deaktivieren?

                                    state in ioBroker ändern und Übertrag nach FHEM kontrollieren.

                                    state in FHEM ändern und Übertrag nach ioBroker kontrollieren

                                    Doku zum FHEM Adapter
                                    Aktuelles zum FHEM Adapter
                                    Test FHEM Adapter

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      aski71
                                      wrote on last edited by
                                      #18

                                      Es hat also tatsächlich etwas mit dem Skript zu tun.

                                      Wenn das Skript aus ist, passiert der Absturz nicht.

                                      1 Reply Last reply
                                      0
                                      • LausiDL Offline
                                        LausiDL Offline
                                        LausiD
                                        wrote on last edited by
                                        #19

                                        puh…..jetzt bin ich aber beruhigt.

                                        Ok hilft dir nicht weiter :-)

                                        Wie sieht dein script aus?

                                        Hat sich die Fehlermeldung eigentlich geändert?

                                        Der Teil ist interessant: iobroker.fhem/main.js:206:25

                                        Doku zum FHEM Adapter
                                        Aktuelles zum FHEM Adapter
                                        Test FHEM Adapter

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          aski71
                                          wrote on last edited by
                                          #20

                                          Skript 1 wird über ein notify getriggert. Sobald an der Oberfläche "on" oder "off" geschaltet wird, läuft es los.

                                          Abhängig vom "on" oder "off" werden 1 Sonos Wecker und 2 Hue Schedules ein- oder ausgeschaltet.

                                          Hier werden noch aus Debug-Gründen Readings gesetzt.

                                          sub
                                          toggleWakeupSchedules($)
                                          {
                                             my ($Value)  = @_;
                                             my %hueToggle = ('status' => "undef");
                                             my $sonosToggle = 1;
                                          
                                             if ("$Value" eq "on")
                                             {
                                                %hueToggle = ('status' => "enabled");
                                                $sonosToggle = "enable";
                                             } elsif ("$Value" eq "off") {
                                                %hueToggle = ('status' => "disabled");
                                                $sonosToggle = "disable";
                                             } else {
                                                return;
                                             }
                                          
                                             # Toggle Alarm No ID 1 at Sonos Beam SZ
                                             fhem "set Sonos_Schlafzimmer Alarm $sonosToggle 1";
                                          
                                             # Create a user agent object
                                             my $ua = LWP::UserAgent->new;
                                             $ua->agent("MyApp/0.1");
                                          
                                             my $jsonToggle = encode_json \%hueToggle;
                                          
                                             # Create a Hue request for Elke
                                             my $req1 = HTTP::Request->new(PUT => 'http://192.168.2.46/api/<xyz>/schedules/2');
                                             $req1->content_type('application/json');
                                             $req1->content($jsonToggle);
                                          
                                             # Create a Hue request for Alex
                                             my $req2 = HTTP::Request->new(PUT => 'http://192.168.2.46/api/<xyz>/schedules/4');
                                             $req2->content_type('application/json');
                                             $req2->content($jsonToggle);
                                          
                                             # Pass requests to the user agent and get a response back
                                             my $res1 = $ua->request($req1);
                                             my $res2 = $ua->request($req2);
                                             my $hash1 = decode_json $res1->content;
                                             my $hash2 = decode_json $res2->content;
                                             my $niceHash1 = Dumper $hash1;
                                             my $niceHash2 = Dumper $hash2;
                                          
                                             # Check the outcomes of the responses
                                             if ($res1->is_success) {
                                               fhem "setreading Wecker hueElkeLichtWeckerReturn $niceHash1";
                                             } else {
                                                fhem "setreading Wecker hueElkeLichtWeckerReturn $res1->status_line";
                                             }
                                             if ($res2->is_success) {
                                               fhem "setreading Wecker hueAlexLichtWeckerReturn $niceHash2";
                                             } else {
                                               fhem "setreading Wecker hueAlexLichtWeckerReturn $res2->status_line";
                                             }
                                          
                                             # Aufruf, den Hue Zustand und den Sonos-Zustand zu aktualisieren
                                             getWakeupSchedules();
                                          }</xyz></xyz> 
                                          

                                          Am Ende wird das Skript getWakeupSchedules gestartet, das die Readings im Dummy-Device aktualisiert und daraus den konsolidierten State "on" oder "off" oder "mixed" setzt:

                                          sub
                                          getWakeupSchedules
                                          {
                                             # Create a user agent object
                                             my $ua = LWP::UserAgent->new;
                                             $ua->agent("MyApp/0.1");
                                          
                                             # Create a Hue request
                                             my $req = HTTP::Request->new(GET => 'http://192.168.2.46/api/<xyz>/schedules');
                                          
                                             # Pass request to the user agent and get a response back
                                             my $res = $ua->request($req);
                                          
                                             my $elkeLichtWecker="undef";
                                             my $alexLichtWecker="undef";
                                          
                                             # Check the outcome of the Hue response
                                             if ($res->is_success) {
                                               my $hash = decode_json $res->content;
                                               my $niceHash = Dumper $hash;
                                               $elkeLichtWecker = $hash->{2}->{status};
                                               $alexLichtWecker = $hash->{4}->{status};
                                               # Set Hue Readings for Wecker
                                               fhem "setreading Wecker hueSchedulesList $niceHash";
                                               fhem "setreading Wecker hueElkeLichtWecker $elkeLichtWecker";
                                               fhem "setreading Wecker hueAlexLichtWecker $alexLichtWecker";
                                             } else {
                                               fhem "setreading Wecker hueSchedulesList $res->status_line";
                                             }
                                          
                                             my $sonosSZenabled = eval(ReadingsVal("Sonos_Schlafzimmer","AlarmList","{}"))->{1}->{Enabled};
                                             fhem "setreading Wecker sonosSZenabled $sonosSZenabled";
                                          
                                             if ( "$elkeLichtWecker" eq "enabled" && "$alexLichtWecker" eq "enabled" && $sonosSZenabled == 1 ) 
                                             {
                                                fhem "setstate Wecker on"; 
                                             } elsif ("$elkeLichtWecker" eq "disabled" && "$alexLichtWecker" eq "disabled" && $sonosSZenabled == 0)
                                             {
                                                fhem "setstate Wecker off";
                                             } else
                                             {
                                                fhem "setstate Wecker mixed";
                                             }</xyz> 
                                          

                                          Additive Info: die Sonos-Abfrage liefert derzeit an immer erstmal den falschen Wert, so dass grundsätzlich ein "mixed" entsteht. Das ist aber ein anderes Problem, dem ich auf den Grund zu gehen versuche. Startet man nämlich unmittelbar danach getWakeupSchedules() von Hand, oder löst die gleiche Aktion über die Oberfläche nochmal aus, stimmt es wieder. Kann mir aber nicht vorstellen, dass das was mit dem aktuellen Problem zu tun hat.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          730

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe