[gelösst]Sonoff Basic in Homebridge einbinden

Begonnen von Larusso, 21 Januar 2018, 20:52:08

Vorheriges Thema - Nächstes Thema

Larusso

Hallo zusammen,

ich habe heute einen Sonoff Basic mit Tasmota geflashed und MQTT in FHEM eingerichtet. Funktioniert alles prima, das Gerät wird mir auch in meiner Home App angezeigt, allerdings kann ich es nicht im Iphone schalten. Das Licht (Sonoff Schalter) wird mir angezeigt und kann auch an und aus gesetzt werden, allerdings schaltet die Lampe nicht. In FHEM geht das prima, ich denke mir fehlt noch ein attr beim Homebridgemapping, allerdings weis ich nicht welches. Hat jemand von euch sonoff Geräte in der Homebridge eingebunden und kann mir Hilfestellung geben? Anbei noch das List des Devices:

Internals:
   IODev      Mosquitto
   NAME       SZ_Nachtlampe
   NR         372
   STATE      OFF
   TYPE       MQTT_DEVICE
   .qos:
     *          0
   .retain:
     *          0
   READINGS:
     2018-01-21 20:42:20   state           OFF
     2018-01-21 20:44:09   transmission-state subscription acknowledged
   message_ids:
   publishSets:
     :
       topic      cmnd/SZ_Nachtlampe/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     stat/SZ_Nachtlampe/POWER
   subscribeExpr:
     ^stat\/SZ_Nachtlampe\/POWER$
   subscribeReadings:
     stat/SZ_Nachtlampe/POWER:
       cmd       
       name       state
Attributes:
   IODev      Mosquitto
   devStateIcon OFF:FS20.off:ON ON:FS20.on:OFF
   genericDeviceType light
   group      Beleuchtung
   icon       light_pendant_light
   publishSet ON OFF cmnd/SZ_Nachtlampe/POWER
   room       Homekit,Lampen
   stateFormat state
   subscribeReading_state stat/SZ_Nachtlampe/POWER
   webCmd     on:off
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

KernSani

Rechts oben in diesem Forum gibt es ein Feld, in das man Suchbegriffe eintippen kann. Dann findet man z.B. sowas:

https://forum.fhem.de/index.php?topic=79175.0

da gibt's dann zumindest Ansätze für das HomebridgeMapping, wenn das (und andere Beiträge) nicht weiterhelfen bitte nochmal melden...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Larusso

#2
Danke für den Hinweis.......aber genau den Beitrag habe ich gelesen und der bringt mich auch nicht weiter. Die Sufu habe ich benutzt, sonst würd ich nicht posten. Ich such dann mal weiter, wenn ich was raus bekomme schreibe ich. Wenn jemand das Problem kennt bzw. die Lösung kann er gerne schreiben, danke trotzdem an alle die sich melden.  ;D
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

KernSani

Hi,
Da ich in deinem device kein homebridgemapping sehe, nahm ich an, du hast noch nicht versucht, das Homebridgemapping entsprechend zu pflegen.
Was passiert denn, wenn du ein homebrifgemapping wie im anderen Post eingibst? Hast du dir mal die debug-Ausgabe angesehen?



RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Larusso

Stand ein bisschen auf dem Schlauch.......es fehlte natürlich nur das "On=state,values=OFF:0;ON:1,cmdOff=OFF,cmdOn=ON" im Homebridgemapping.

Sorry KernSani aber du hattest recht da waren nur zu viele Bäume, ich hab den Wald nicht mehr gesehen.

;)
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

KernSani

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

wires.io

#6
Zur Ergänzung bzw. Frage an die FHEM Profis: Um Sonoff auch lokal schalten zu können (siehe: https://github.com/arendst/Tasmota/wiki/Buttons-and-Switches) und den Zustand dann auch richtig dargestellt zu bekommen, musste ich folgende Bretter in FHEM reinzimmern:

define MQTT2_DVES_97052F_notify_1 notify MQTT2_DVES_97052F:POWER1:.on { if(ReadingsVal("MQTT2_DVES_97052F","state","") eq "off") {fhem("set MQTT2_DVES_97052F on")} }

define MQTT2_DVES_97052F_notify_2 notify MQTT2_DVES_97052F:POWER1:.off { if(ReadingsVal("MQTT2_DVES_97052F","state","") eq "on") {fhem("set MQTT2_DVES_97052F off")} }

Geht das auch eleganter?

TomLee

Hallo,

MQTT_DEVICE ist bei mir gefühlt ewig her.
Laut Aussage von Andre sollen ja in homebridge-fhem Geräte unabhängig von der schreibweise (groß/klein) erkannt werden.
Dein Beispiel zeigt mir wieder das das nicht so ist.

Du hast aber die Möglichkeit in Tasmota ON/OFF mit StateText1 off/StateText2 on auf Kleinschreibung umzustellen, dann braucht man auch kein homebridgeMapping mehr.

Wenn du das mal ausprobieren magst ?

Gruß

Thomas

wires.io

Das Problem liegt darin, dass bei lokaler Schalterbetätigung das Reading "POWER" geändert wird, das (entscheidende) Reading "state" sich aber nicht ändert. Daher triggere ich das Schalten bei Änderung von "POWER".

TomLee

Ups, du nutzt ja MQTT2, hatte nicht genau gelesen du bist ja gar nicht der TE.

Du löschst einfach dein homebridgeMapping nimmst die vorgeschlagenen Einstellungen zu StateText1/2 vor und setzt noch jsonMap POWER:state dann landet Power auch in state.

wires.io

Mit jsonMap POWER:state ändert sich "state" nicht bei Änderung von "POWER".
Und: homebridgemapping brauche ich doch auf jeden Fall, oder nicht?

TomLee

zeig mal ein list oder Raw Definition von dem Gerät.

Nein, wenn on/off in state landet braucht man kein homebridgeMapping mehr.

wires.io

defmod MQTT2_DVES_97052F MQTT2_DEVICE DVES_97052F
attr MQTT2_DVES_97052F IODev myBroker
attr MQTT2_DVES_97052F alias plugboard
attr MQTT2_DVES_97052F genericDeviceType outlet
attr MQTT2_DVES_97052F homebridgeMapping On=state,valueOff=off,cmdOff=on,cmdOn=on
attr MQTT2_DVES_97052F readingList DVES_97052F:stat/tasmota/RESULT:.* { json2nameValue($EVENT) }\
DVES_97052F:tele/tasmota/STATE:.* { json2nameValue($EVENT) }\
DVES_97052F:tele/tasmota/SENSOR:.* { json2nameValue($EVENT) }\
DVES_97052F:stat/tasmota/POWER:.* POWER\
DVES_97052F:tele/tasmota/LWT:.* LWT\
DVES_97052F:cmnd/tasmota/POWER:.* POWER\
DVES_97052F:tele/tasmota/INFO1:.* { json2nameValue($EVENT) }\
DVES_97052F:tele/tasmota/INFO2:.* { json2nameValue($EVENT) }\
DVES_97052F:tele/tasmota/INFO3:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_97052F room Homekit,MQTT
attr MQTT2_DVES_97052F setList on cmnd/tasmota/POWER on\
off cmnd/tasmota/POWER off\
reboot cmnd/tasmota/Restart 1
attr MQTT2_DVES_97052F webCmd on:off:reboot

TomLee

Das zwar kein list und auch keine Raw Definition aber man sieht trotzdem das kein Attribut jsonMap gesetzt ist.

Wenn du die jetzige Definition nicht ändern möchtest kopiere das Gerät einfach (copy MQTT2_DVES_97052F MQTT2_DVES_97052F2) und nimm dort das jsonMap mit rein und das homebridgemapping raus.

wires.io

Das ist der erste Teil von Raw definition - den zweiten Teil wollte ich hier nicht posten. jsonMap hatte ich gelöscht. Welche Info brauchst Du denn genau?