[Modul] Shelly

@paresy, das ist die Stelle, an der bei mDNS die IPv4 Adresse abgefragt wird. Kannst du dich an das Thema erinnern?

Grüße,
Kai

Da kann ich so nichts zu sagen, hast du mal Debugs?
Oder kannst du mal mit dem Bonjour Browser schauen?

Grüße,
Kai

Ein Beitrag wurde in ein existierendes Thema verschoben: Fehler bei Befehl testen

Hi @KaiS,

ich kriege seit heute den gleichen Fehler wie ihn @fbueller76 beschrieben hat:

Konnte Konfigurationsform nicht laden
<br />
<b>Notice</b>:  Undefined offset: 0 in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>501</b><br />
<br />
<b>Notice</b>:  Trying to access array offset on value of type null in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>501</b><br />
<br />
<b>Notice</b>:  Trying to access array offset on value of type null in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>501</b><br />
<br />
<b>Notice</b>:  Undefined offset: 0 in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>505</b><br />
<br />
<b>Notice</b>:  Trying to access array offset on value of type null in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>505</b><br />
<br />
<b>Notice</b>:  Undefined offset: 0 in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>506</b><br />
<br />
<b>Notice</b>:  Trying to access array offset on value of type null in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>506</b><br />
<br />
<b>Fatal error</b>:  Uncaught TypeError: array_key_exists() expects parameter 2 to be array, null given in /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php:506
Stack trace:
#0 /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php(30): ShellyConfigurator-&gt;findShellysOnNetwork()
#1 /-(3): ShellyConfigurator-&gt;GetConfigurationForm()
#2 {main}
  thrown in <b>/var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php</b> on line <b>506</b><br /> (Code: -32603)

Was habe ich gemacht ?
Ich habe einen neuen Shelly 2.5 als Shutter eingebunden, diesen dann entsprechend meiner Namenskonvention umbenannt. Anschließend wollte ich einen weiteren neuen Shelly1PM einbinden, und habe dann diese Fehlermeldung bekommen, jedesmal wenn ich das Konfigform aufrufen will.

Die Shellys kann ich alle ganz normal über Symcon bedienen. Nur das Konfigform mag nicht mehr.

Hast du da eine Idee ?

Danke dir!

Grüße
Daniel

Edit:
Das Problem tritt immer dann auf, sobald sich ein neues Gerät per MQTT meldet. Dann scheint irgendetwas im Index des Konfigforms durcheinander zu kommen. Nur ein manueller Neustart von Symcon Dienst hilft in diesem Fall, dann wird das neue Gerät angezeigt und ich kann es einbinden. Das habe ich jetzt mehrfach durchgespielt und immer das gleiche Verhalten gehabt.

@paresy, auch hier ist wieder das Problem mit IPv4 bei mDNS, hast du da eine Idee?

Grüße,
Kai

@dansch @fbueller76

Könntet ihr einmal das Skript hier starten?


$mDNSInstanceIDs = IPS_GetInstanceListByModuleID('{780B2D48-916C-4D59-AD35-5A429B2355A5}');
$resultServiceTypes = ZC_QueryServiceType($mDNSInstanceIDs[0], '_http._tcp', '');

$shellys = [];
foreach ($resultServiceTypes as $key => $device) {
    if (strpos(strtolower($device['Name']), 'shelly') !== false) {
        var_dump(ZC_QueryService($mDNSInstanceIDs[0], $device['Name'], '_http._tcp', 'local.'));
    }
}

@KaiS Der IPv4/IPv6 Workaround landet erst in der 5.6 :slight_smile:

paresy

1 „Gefällt mir“

Ist das ein Codeschnipsel aus meinem Modul? :smiley:

Grüße,
Kai

Klar. Will ja wissen was da passiert/schief läuft :smiley: Soweit ich weiß ist @fbueller76 bereits auf der 5.6 unterwegs. Evtl. ist da also noch was anderes quer…

paresy

Das passiert nicht immer, wenn ich das noch richtig in Erinnerung habe.

Ich glaube bei dem HUE Modul hatten wir da auch schon mal nach gesucht.

Grüße,
Kai

hier die info:

array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(40) "shelly1pm-E09806A9E0C4._http._tcp.local."
    ["Host"]=>
    string(29) "shelly1pm-E09806A9E0C4.local."
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(25) "id=shelly1pm-E09806A9E0C4"
      [1]=>
      string(12) "arch=esp8266"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(14) "fw_version=1.0"
      [4]=>
      string(38) "fw_id=20210429-101828/v1.10.4-g3f94cd7"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(13) "192.168.0.124"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(40) "shelly1pm-F4CFA2E508E9._http._tcp.local."
    ["Host"]=>
    string(29) "shelly1pm-F4CFA2E508E9.local."
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(25) "id=shelly1pm-F4CFA2E508E9"
      [1]=>
      string(12) "arch=esp8266"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(14) "fw_version=1.0"
      [4]=>
      string(38) "fw_id=20210429-101828/v1.10.4-g3f94cd7"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(13) "192.168.0.122"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(33) "shellyem-5E2951._http._tcp.local."
    ["Host"]=>
    string(22) "shellyem-5E2951.local."
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(18) "id=shellyem-5E2951"
      [1]=>
      string(12) "arch=esp8266"
      [2]=>
      string(12) "app=shellyem"
      [3]=>
      string(14) "fw_version=1.0"
      [4]=>
      string(38) "fw_id=20210429-102232/v1.10.4-g3f94cd7"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(13) "192.168.0.125"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}

meine Version ist:
IP-Symcon 5.5, Windows x64, 11.05.2021, dedc6e9b6692

Klar, führe ich heute Abend aus und Poste hier das Ergebnis.

Ich bin noch auf der 5.5:

IP-Symcon 5.5, Ubuntu, 05/11/2021, dedc6e9b6692

Hier die Ausgabe von dem Skript @paresy:

array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8AC2084._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8AC2084.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(38) "fw_id=20210323-105928/v1.10.1-gf276b51"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8AC2084"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.209"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8AC297A._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8AC297A.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(38) "fw_id=20210323-105928/v1.10.1-gf276b51"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8AC297A"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.175"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8ACC9BB._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8ACC9BB.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(38) "fw_id=20210323-105928/v1.10.1-gf276b51"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8ACC9BB"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.176"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8AF9587._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8AF9587.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(38) "fw_id=20210323-105928/v1.10.1-gf276b51"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8AF9587"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.216"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8B1381B._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8B1381B.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(38) "fw_id=20210323-105928/v1.10.1-gf276b51"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8B1381B"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.215"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}
array(1) {
  [0]=>
  array(6) {
    ["Name"]=>
    string(39) "shelly1pm-84CCA8B15C68._http._tcp.local"
    ["Host"]=>
    string(28) "shelly1pm-84CCA8B15C68.local"
    ["Port"]=>
    int(80)
    ["TXTRecords"]=>
    array(5) {
      [0]=>
      string(42) "fw_id=20210405-092343/v1.10.2-rc5-gc86c23a"
      [1]=>
      string(14) "fw_version=1.0"
      [2]=>
      string(13) "app=switch1pm"
      [3]=>
      string(12) "arch=esp8266"
      [4]=>
      string(25) "id=shelly1pm-84CCA8B15C68"
    }
    ["IPv4"]=>
    array(1) {
      [0]=>
      string(14) "192.168.34.196"
    }
    ["IPv6"]=>
    array(0) {
    }
  }
}

Hallo,
ich hab das gleiche Problem wie der Marc vor ca. 1Monat.
Ich hab so hoffe ich alles wie laut Anweisung abgearbeitet.
Mein Shelly1 zum Testen wird auch in Symcon gefunden.
Allerdings steht bei der Variabel Erreichbarkeit Offline und ich erhalte keinerlei Änderungen wenn ich über z.B. über die App schalte.
Ich wollte jetzt nicht unbedingt alle über 1500 Beiträge durchlesen um zu gucken ob ich den Fehler dadurch finde.

Ich habe die Neuste Symcon Version 5.5 auf einer Pi laufen.
Eine Firewall hab ich eigentlich nicht auf meiner Pi installiert.

Auf der Shellyeinstellseite hab ich unter der mqtt die IP meiner raspberry auf der symcon läuft mit Port1883 eingestellt.
User und Password hab ich erstmal leer gelassen.
Beim Server Socket des MQTT Servers Port 1883 eingetsellt und auf Aktiv geschaltet.
In der Übersicht unter den I/O Instanzen steht als IP Wert 0.0.0.0:1883.
Ist das so korrekt?
Bei meinem HomeMatic Socket steht da die komplette IP.

Bei dem MQTT Server hab ich alles so gelassen.
Passwort Benutzer leer und Rest 3600 und 500 wie eingestellt.

Der MQTT Topic wurde vom Shelly Configurator übernommen.
Bei Firmware Version steht da allerdings Version=1.0
Im Shelly hab ich die gestern erst auf den aktuellen Stand gebracht.

Schalten in der App oder im Browser ist möglich.

Nachdem ich doch ein paar Einträge weiter nach hinten durchgeschaut habe hab ich es doch zum laufen bekommen.
Hacken war noch bei Enable ColoT gesetzt.
Als Port muss bei mir die 1024 eingetragen sein.
Unter der 1883 läufts bei mir nicht.
Und schlussendlich musste ich das shelly über device reboot nochmal neu Starten.

Ich habe bei mir mal testweise das ColoT rausgenommen, mal schauen ob das irgendetwas bringt. mDNS mag ich eigentlich eher nicht haben wenn ich es nicht zwingend brauche.

Update hierzu:

ColoT rauszunehmen hat nichts gebracht.

Bei dir geht es um das Problem, dass mDNS ab und zu etwas falsches liefert. Ich kann da leider nicht viel dran ändern.

@paresy, du hast auch keine Idee mehr, oder? Da ja bei der Ausführung vom Code ([Modul 5.1] Shelly - MQTT Server & MQTT Client - #1537 von paresy) alles passt.

Grüße,
Kai

Hallo @KaiS ,

erst mal vielen Dank für das Modul, die Plugs und ein RBGW2 laufen echt gut.

Aber mit den Bulbs (DUO RGBW) klappt es leider nur eingeschränkt:

Color-Modus mittels Web-Gui der Lampe eingeschaltet:

  • Farbe: Änderung der werden in beide Richtungen (IPS → DUO und DUO → IPS) übernommen.
  • Helligkeit: Änderungen werden nur von der DUO nach IPS übernommen, der Slider „gain“ ändert sich mit dem Slider im Web-Gui. In IPS kann ich den Slider verstellen, jedoch ohne Auswirkung auf die DUO.

White-Modus mittels Web-Gui der Lampe eingeschaltet:

  • Mittels Web-Gui alle Einstellung möglich, allerdings keine Anzeige/Rückmeldung in Richtung IPS
  • Änderungen in IPS werden gar nicht an die Bulb übertragen.

Einen MQTT-Trace (gefiltert auf eine Bulb) lege ich mal bei, sollten weitere Informationen nötig sein …

  • IPS 5.5
  • Shelly-Modul aktuel (Beta & Neu-Installation brachte auch keine Änderung)
  • Bulb Version 20210429-095910/v1.10.4-g3f94cd7 (latest)

Dank und Gruß aus dem schönen Rheinland

kea

dump.txt (24,5 KB)

Das Verhalten welches @kea geschildert hat bzgl der DUO RGBW kann ich bestätigen.

@kea und @dansch, ich habe noch mal in der Dokumentation von der Shelly API geschaut, dort wird Gain gar nicht mehr aufgeführt.
Die Helligkeit könnt ihr über die Variable Helligkeit über Symcon steuern? Dann würde ich Gain entfernen.

Könnt ihr mir mal ein Debug aus der Geräteinstanz zukommen lassen, wenn ihr über das Webinterface vom Shelly im „Weiß-Modus“ alles durchschaltet?

Grüße,
Kai