Homebridge - Keine Status Übergabe?

Begonnen von marcel151, 01 Dezember 2019, 11:14:21

Vorheriges Thema - Nächstes Thema

marcel151

Hallo,

ich bin am Einrichten meiner Weihnachtsbeleuchtung und möchte das ganze natürlich Smart machen.  :) Habe hier ein paar Sonoff Steckdosen mit Tasmota. Diese möchte ich per MQTT steuern und auch in Homebridge einrichten um sie auch für die Frau bei Bedarf einfach steuern zu lassen. Ich habe folgendes Problem. Wenn ich eine Dose über FHEM ein- oder ausschalte aktualisiert sich der Status in Homebridge nicht. Umgekehrt geht es schon, also wenn ich über die Home-App schalte verändert sich der Status in FHEM sofort. Muss da irgendetwas zusätzlich konfiguriert werden? Bin im MQTT-Thema noch nicht so mega drin.

MadMax-FHEM

#1
Hallo,

ein list vom Device wäre hilfreich ;)

list DeviceName

in FHEMWeb und die Ausgabe dann hier in "code-Tags" (das '#' im "Menü") posten...

Aber ich tippe schwer auf fehlendes/falsches homebridgeMapping ;)

Siehe hier: https://forum.fhem.de/index.php/topic,85310.msg776511.html#msg776511 und/oder hier https://forum.fhem.de/index.php/topic,83121.msg753436.html#msg753436

EDIT: oder selber mal im Forum nach "Tasmota mqtt homebridgeMapping" bzw. "Tasmota mqtt homekit" suchen ;)

Ansonsten mit mehr Info "wiederkommen" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

marcel151

Hi und danke für die Info. Ja leider habe ich noch kein Homebridgemapping betrieben. Nach Eintragen des Mappings funktioniert das Schalten nur leider garnicht mehr. Habe ich vielleicht den Stecker falsch konfiguriert? Ist ein Sonoff S26.

Internals:
   CID        DVES_1C852C
   DEF        DVES_1C852C
   DEVICETOPIC Sonoff3
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 8
   MQTT2_FHEM_Server_TIME 2019-12-01 22:00:44
   MSGCNT     8
   NAME       Sonoff3
   NR         440
   STATE      off
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-12-01 22:00:44   Heap            15
     2019-12-01 21:45:33   LWT             Online
     2019-12-01 22:00:44   LoadAvg         19
     2019-12-01 22:00:44   POWER1          off
     2019-12-01 11:51:59   SaveData        on
     2019-12-01 11:51:59   SetOption26     on
     2019-12-01 22:00:44   Sleep           50
     2019-12-01 22:00:44   SleepMode       Dynamic
     2019-12-01 11:51:58   StateText1      off
     2019-12-01 11:51:58   StateText2      on
     2019-12-01 11:51:58   StateText3      toggle
     2019-12-01 11:51:59   StateText4      hold
     2019-12-01 22:00:44   Time            2019-12-01T22:00:44
     2019-12-01 22:00:44   Uptime          0T10:24:50
     2019-12-01 21:49:35   state           set_off
     2019-12-01 21:46:22   subscriptions   cmnd/DVES_1C852C_fb/# cmnd/sonoff3/# cmnd/sonoffs/#
Attributes:
   IODev      MQTT2_FHEM_Server
   alias      Wohnzimmer-Stern
   autocreate 0
   homebridgeMapping On=state,values=OFF:0;ON:1,cmdOff=OFF,cmdOn=ON
   model      A_01a_tasmota_basic_state_power1
   readingList tele/sonoff3/LWT:.* LWT
  tele/sonoff3/STATE:.* { json2nameValue($EVENT) }
  tele/sonoff3/SENSOR:.* { json2nameValue($EVENT) }
  tele/sonoff3/INFO.:.* { json2nameValue($EVENT) }
  stat/sonoff3/RESULT:.* { json2nameValue($EVENT) }
   room       Homekit,Licht,MQTT,Steckdosen,Wohnzimmer
   setList    off:noArg    cmnd/sonoff3/POWER1 0
  on:noArg     cmnd/sonoff3/POWER1 1
  toggle:noArg cmnd/sonoff3/POWER1 2
  on-for-timer {my $duration = $EVTPART1*10; 'cmnd/sonoff3/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
   setStateList on off toggle
   stateFormat POWER1

MadMax-FHEM

#3
Ich kenne mich mit Sonoff/Tasmota/etc. nicht wirklich aus...
...aber du hast ja so einiges an Attributen und auch "eigenartige" Readings z.B. StateText1 usw.

Bei state steht auch set_off, das passt nat. nicht zu dem was du bei homebridgeMapping stehen hast...

Auch weiß ich nicht, was von dem Ganzen für ein-/ausschalten da ist...

Wie hast du denn das Device eingebunden!?

EDIT: ok MQTT_SERVER und MQTT_DEVICE... Selbst oder attrTemplate genutzt!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#4
Hast du dir mal die Templates zu dem Thema MQTT etc. angeschaut?

Wie geschrieben kenne ich das MQTT-Zeugs praktisch gar nicht...
...aber das homebridgeMapping muss nat. zu Status und Schaltbefehlen passen...

Also wo steht der Status (state hat ja aktuell set_off) und wie schaltest du ein/aus, also welcher set-Befehl...

Das dann eben ins homebridgeMapping...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

#5
Ich hab meine Sonoff_S20 mal endlich ausgekramt, nicht nur wegen des Threads, ich brauch sie jetzt eh zur Weihnachtszeit.

Die richtigen Suchworte wären MQTT2 TASMOTA POWER1 HOMEBRIDGE FHEM gewesen um fündig zu werden.  ;)

Mit

attr Sonoff3 userReadings state:POWER1:.* {ReadingsVal($name,"POWER1","")}

sollte alles passen, ohne homebridgemapping.

Gruß

Thomas

TomLee

@Joachim

Die komischen Readings wie StateText1,StateText2,StateText3, SaveData,SetOption26, sleep ... sind Statusmeldungen zu Einstellungen die man in der Tasmota-Konfiguration vorgenommen hat.

Die kann man auch suchen und landet immer hier  :P

MadMax-FHEM

Hi Tom,

danke!

Macht die "Sache" aber nicht wirklich übersichtlich(er)... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Hmm, vermutlich sollte man die Tasmota-Templates auch dahingehend umbauen, dass man teilweise mit JSONMAP arbeitet? Das mit den userReadings gefällt mir nicht so...

Mal unterstellt, die Rückmeldung kommt über "stat":
...
stat/sonoff3/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr DEVICE jsonMap POWER1:state

(Dann kann man ohne stateFormat und ohne userReadings auskommen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

marcel151

Zitat von: TomLee am 01 Dezember 2019, 23:32:27
Mit

attr Sonoff3 userReadings state:POWER1:.* {ReadingsVal($name,"POWER1","")}

sollte alles passen, ohne homebridgemapping.

Gruß

Thomas

Das war das was ich gebraucht habe, vielen Dank, nun geht es!

Ich habe nun noch ein paar 433Mhz Steckdosen, bei dennen ich das gleiche Problem habe. Schalten geht, aber wenn ich per FHEM Schalte ändert sich der Status in Home nicht. Hier war auch kein Mapping hinterlegt, daher hab ich das Mapping von den Tasmota-Dosen hinterlegt. Danach ging wieder nichts. Habe dann alles klein geschrieben weil in den Readings nichts groß ist, aber leider wieder keine Statusübergabe. Könnt Ihr mir hierbei helfen? Ist ja wirklich nur ein on und off was hier übergeben wird. Leider verstehe ich das mit den Mappings noch nicht so ganz.
Internals:
   Command    sudo /opt/fhem/bin/sendElro -u 1 -i 2 -S
   DEF        sudo /opt/fhem/bin/sendElro -u 1 -i 2 -S 1 0
   NAME       DoseB
   NR         69
   OffValue   0
   OnValue    1
   STATE      off
   TYPE       GenShellSwitch
   READINGS:
     2019-12-02 11:04:16   state           off
Attributes:
   alias      Stehlampe Wohnzimmer
   fm_type    offbutton,onbutton,lamp
   group      Steckdosen
   homebridgeMapping on=state,values=off:0;on:1,cmdOff=off,cmdOn=on
   room       Steckdosen,AllesÜbersicht,Homekit

MadMax-FHEM

Wenn du die Steckdosen über set Steckdose on/off schalten kannst und der Status in state steht, dann brauchst du normalerweise gar kein Mapping.

Allerdings würde ich mal einen genericDeviceType (switch!?) setzen...

Also genericDeviceType setzen und homebridgeMapping löschen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

marcel151

Habe den genericDeviceType auf "light" gesetzt und das Mapping gelöscht. Geht leider noch nicht. Ich kann zwar in FHEM schalten, aber der Status ändert sich in Home nicht. Wenn ich dagegen in Home schalte ändert sich der Status in FHEM direkt. Bei genericDeviceType "switch" verhält es sich genauso.

MadMax-FHEM

Wo steht denn der Gerätestatus? state!?

Wie schaltest du ein/aus? set Gerät on / set Gerät off !?

EDIT: nach den Änderungen homekit/homebridge (oder was immer da läuft) neu gestartet bzw. neu "einlesen lassen"!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Zitat von: marcel151 am 02 Dezember 2019, 11:07:47
Ich habe nun noch ein paar 433Mhz Steckdosen, bei dennen ich das gleiche Problem habe. Schalten geht, aber wenn ich per FHEM Schalte ändert sich der Status in Home nicht. Hier war auch kein Mapping hinterlegt, daher hab ich das Mapping von den Tasmota-Dosen hinterlegt. Danach ging wieder nichts. Habe dann alles klein geschrieben weil in den Readings nichts groß ist, aber leider wieder keine Statusübergabe. Könnt Ihr mir hierbei helfen? Ist ja wirklich nur ein on und off was hier übergeben wird. Leider verstehe ich das mit den Mappings noch nicht so ganz.

Das auch genauso bei meinen IT-Steckdosen (gewesen).

Hier waren die Suchwörter  ;D

it homebridge 433 on off fhem

um einen Hinweis zu finden es mal mit genericDeviceType light zu verwenden.

Ich weiß nicht warum aber dann wird der Status in Home korrekt angezeigt wird und zuvor mit switch nicht.

defmod it_Steckdose3 IT 0F0F0000F0 FF F0
attr it_Steckdose3 userattr deko deko_map structexclude
attr it_Steckdose3 IODev sduino
attr it_Steckdose3 ITclock 271
attr it_Steckdose3 ITrepetition 8
attr it_Steckdose3 alexaName weihnachtsbeleuchtung
attr it_Steckdose3 comment 0F0F0000F0 FF F0
attr it_Steckdose3 genericDeviceType light
attr it_Steckdose3 room Homekit,IT

setstate it_Steckdose3 off
setstate it_Steckdose3 2019-03-28 21:53:20 protocol V1
setstate it_Steckdose3 2019-12-02 13:20:59 state off





Zu dem jsonmap: das klappt so wie vorgeschlagen noch nicht, man muss zusätzlich noch setStateList on off toggle löschen.
Ehrlich gesagt hab ich das mit setStateList auch noch nicht verstanden / mich mit beschäftigt bisher war das für mich sinnlos. 8)

Also:

defmod MQTT2_Sonoff_S20 MQTT2_DEVICE DVES_12F2A2
attr MQTT2_Sonoff_S20 IODev MQTT2_Server
attr MQTT2_Sonoff_S20 autocreate 0
attr MQTT2_Sonoff_S20 comment NOTE: on-for-timer is limited to 18h max duration!
attr MQTT2_Sonoff_S20 event-on-change-reading .*
attr MQTT2_Sonoff_S20 icon hue_filled_outlet
attr MQTT2_Sonoff_S20 jsonMap POWER1:state
attr MQTT2_Sonoff_S20 model tasmota_basic_state_power1
attr MQTT2_Sonoff_S20 readingList tele/sonoffs20/LWT:.* LWT\
  tele/sonoffs20/STATE:.* { json2nameValue($EVENT) }\
  tele/sonoffs20/SENSOR:.* { json2nameValue($EVENT) }\
  tele/sonoffs20/INFO.:.* { json2nameValue($EVENT) }\
  stat/sonoffs20/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_Sonoff_S20 room Homekit,MQTT2_DEVICE
attr MQTT2_Sonoff_S20 setList off:noArg    cmnd/sonoffs20/POWER1 0\
  on:noArg     cmnd/sonoffs20/POWER1 1\
  toggle:noArg cmnd/sonoffs20/POWER1 2\
  on-for-timer {my $duration = $EVTPART1 < 11.2 ? $EVTPART1*10 : $EVTPART1+100;; 'cmnd/sonoffs20/Backlog pulseTime1 '.$duration.';; POWER1 1'}\
  setOtaUrl:textField cmnd/sonoffs20/OtaUrl $EVTPART1\
  upgrade:noArg   cmnd/sonoffs20/upgrade 1

setstate MQTT2_Sonoff_S20 off
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 FallbackTopic DVES_12F2A2
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 GroupTopic sonoffs
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 Hostname sonoffs20-4770
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 IPAddress 192.168.188.64
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 LWT online
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 Module Sonoff Basic
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 POWER1 off
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:25 Restart Restarting
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 RestartReason Software/System restart
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:35 SaveData on
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:35 SetOption26 on
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:34 StateText1 off
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:34 StateText2 on
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:35 StateText3 toggle
setstate MQTT2_Sonoff_S20 2019-12-01 23:09:35 StateText4 hold
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Time 2019-12-02T13:50:29
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Uptime 0T00:45:19
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Vcc 3.160
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 Version 6.3.0
setstate MQTT2_Sonoff_S20 2019-12-02 13:53:32 WebServerMode Admin
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Wifi_AP 2
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Wifi_BSSId FC:EC:DA:FD:26:1A
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Wifi_Channel 6
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Wifi_RSSI 84
setstate MQTT2_Sonoff_S20 2019-12-02 13:50:30 Wifi_SSId FBF
setstate MQTT2_Sonoff_S20 2019-12-02 13:31:22 state off


marcel151

#14
Der Gerätestatus (on oder off) steht in state.
Das wird über sendelro gemacht
sudo /opt/fhem/bin/sendElro -u 1 -i 2 -S 1 0 1 für an und 0 für aus.

Habe jedes Mal nach einer Änderung Homebrigde einmal neu gestartet. Schalten funktioniert jeweils in FHEM und Home. Aber leider wird der Status beim Schalten in FHEM nicht an Home übergeben. Und wie gesagt, mit genericDeviceType funktioniert es nicht.