Sonoff (Tasmota) in FHEM und Home Assistant

Begonnen von rallye, 16 März 2022, 10:16:02

Vorheriges Thema - Nächstes Thema

rallye

Hallo zusammen !
Ich habe seit langem eine FHEM-Installation und neuerdings auch Home Assistant als User-Interface (das erhöht den WAF ungemein!!!) am selben RasPi in einem Docker. Mein Ansatz ist: alle Logik und automatischen Schaltvorgänge wie Heizung, Lichter, Poolsteuerung usw in FHEM zu belassen, lediglich bedarfsmäßige manuelle Eingriffe wie Wohnzimmerlicht ein/aus, Poolpumpe ein/aus, ... und Informationen (offene Fenster & Türen) werden von FHEM nach HA "durchgereicht" bzw "zurückgereicht". Ich habe das erfolgreich mit Homematic-Schaltern via MQTT_GENERIC_BRIDGE (FHEM-seitig) und Mosquitto Broker (HA-seitig) implementiert. Meine Shellies (ca 15) die in FHEM via einem MQTT2-Server mit User & PW an Port 1883 angebunden sind, wurden von HA automatisch erkannt (obwohl das HA Mosquitto Port auf 1885 eingestellt ist und user&pw nicht ident mit user&pw der "allowed" für den MQTT2_Server in FHEM sind).
Nun möchte ich die Schalter bei der Poolpumpe, Poolheizung und Gartenbeleuchtung von Homematic-Devices auf Sonoff (mit Tasmota geflasht) umrüsten. Meine Hoffnung, dass sich der Sonoff wie die Shellies in HA einfach auftauchen hat sich leider nicht erfüllt. Also dachte ich, ich binde den Sonoff ident zu den Homematic-Schaltern ein. Aber auch hier kein Erfolg.
Meine Konfiguration ist wie folgt:
FHEM:
defmod MQTT2_SonoffGartenbeleuchtung MQTT2_DEVICE SonoffGartenbeleuchtung
attr MQTT2_SonoffGartenbeleuchtung userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr MQTT2_SonoffGartenbeleuchtung alias Sonoff Gartenbeleuchtung
attr MQTT2_SonoffGartenbeleuchtung autocreate 0
attr MQTT2_SonoffGartenbeleuchtung comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/tasmota_F642D7/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr MQTT2_SonoffGartenbeleuchtung genericDeviceType switch
attr MQTT2_SonoffGartenbeleuchtung icon hue_filled_outlet
attr MQTT2_SonoffGartenbeleuchtung jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr MQTT2_SonoffGartenbeleuchtung model tasmota_basic_state_power1
attr MQTT2_SonoffGartenbeleuchtung readingList tele/tasmota_F642D7/LWT:.* LWT\
  tele/tasmota_F642D7/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_F642D7/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_F642D7/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_F642D7/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_F642D7/POWER1:.* state\
  stat/tasmota_F642D7/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_SonoffGartenbeleuchtung room HASS,Sonoff
attr MQTT2_SonoffGartenbeleuchtung setList off:noArg    cmnd/tasmota_F642D7/POWER1 0\
  on:noArg     cmnd/tasmota_F642D7/POWER1 1\
  toggle:noArg cmnd/tasmota_F642D7/POWER1 2\
  setOtaUrl:textField cmnd/tasmota_F642D7/OtaUrl $EVTPART1\
  upgrade:noArg   cmnd/tasmota_F642D7/upgrade 1
attr MQTT2_SonoffGartenbeleuchtung setStateList on off toggle

setstate MQTT2_SonoffGartenbeleuchtung off


HomeAssistant:
  - platform: mqtt
    name: SonoffGartenbeleuchtung
    command_topic: "fhem/SonoffGartenbeleuchtung/set"
    state_topic: "fhem/SonoffGartenbeleuchtung/state"
    payload_on: "on"
    payload_off: "off"
    state_on: "on"
    state_off: "off"
    availability_topic: "fhem/connection/status"
    payload_available: "connected"
    payload_not_available: "disconnected"
#

Der devicetracker im HA gibt mir vernünftige Werte zurück
source_type: router
ip: 192.168.57.215
mac: DC:4F:22:F6:42:D7
host_name: SonoffGartenbeleuchtung
last_time_reachable: 2022-03-16T09:13:27+00:00
connected_to: Internet
connection_type: WLAN
ssid: Internet
icon: mdi:lan-connect
friendly_name: SonoffGartenbeleuchtung

Lediglich der Device-Status ist
unknown
Was mache ich falsch bzw wie könnte ich den Sonoff parallel in FHEM und HA einbinden ?

Danke !
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Du musst auch bei einem MQTT2_DEVICE die mqttSubscribe- und -Publish-Attribute für MGB sinnvoll füllen, damit deine "2. MQTT-Ebene" auf Port 1885 bedient wird.
In der Hinsicht verhält sich auch ein MQTT2_DEVICE nicht anders als ein beliebiges Device eines anderen TYPE.
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

rallye

Danke für den Tip! Bei den Homematic-Devices sind nach dem get mqttGeneric refreshUserAttr das attr <dev> mqttSubscribe state:stopic={"$base/set"} und das attr <dev> mqttForward all von "alleine" gekommen - das ist mir gar nicht aufgefallen. Nun habe ich die Beiden (aber nicht das mqttPublish-Attribut !) nachgetragen und es funktioniert auch schon. Danke. Ganz verstanden habe ich nicht was ich hier getan habe - ich glaube ein Studium der Commandref meinerseits ist angesagt.

Danke
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Zitat von: rallye am 16 März 2022, 11:36:19
(aber nicht das mqttPublish-Attribut !)
Dann hast du vermutlich das (m.E. nicht zu empfehlende) globalPublish an der MGB direkt gesetzt.

mqttForward braucht es m.E. nicht.

Zitat von: rallye am 16 März 2022, 11:36:19
ich glaube ein Studium der Commandref meinerseits ist angesagt.
Definitiv :) !
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