Switch als Thermostat verwenden

Begonnen von jbraeu, 08 März 2020, 17:24:56

Vorheriges Thema - Nächstes Thema

jbraeu

Hallo zusammen,

ich möchte einen tasmotisiertem Shelly 1 U2 welcher mit einem SI7021 ausgestattet ist zum Thermostat missbrauchen.
Ziel: Ich stell am FTUI eine Solltemperatur ein, der Shelly macht das Relais zu, der Stellmotor geht an bis die Temperatur erreicht ist.. soweit alles easy.
Jetzt hat der aber von Haus aus keine Einstellwerte die man schreiben könnte wie desired Temp etc. ich habe im Forum schon jemanden gefunden der so etwas ohne FTUI per Dummy umgesetzt hat aber ich glaube das müsste einfacher gehen.
LINK: https://wiki.fhem.de/wiki/Sonoff#Sonoff_Switch_als_Thermostat_verwenden_mit_MQTT

Für alternative Hardwarevorschläge bin ich offen, allerdings müsste diese in eine tiefe 60er Dose passen ;)


Internals:
   CID        thermostat.buero
   DEF        thermostat.buero
   DEVICETOPIC MQTT2_thermostat.buero
   FUUID      5e650608-f33f-20ab-007e-b999ed857c9e7b68
   IODev      m2server
   LASTInputDev m2server
   MSGCNT     11
   NAME       MQTT2_thermostat.buero
   NR         320
   STATE      58.0% - 22.9°C - off
   TYPE       MQTT2_DEVICE
   m2server_MSGCNT 11
   m2server_TIME 2020-03-08 17:16:57
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2020-03-08 16:31:37   FallbackTopic   cmnd/thermostat.buero_fb/
     2020-03-08 16:31:37   GroupTopic      cmnd/tasmotas/
     2020-03-08 17:16:57   Heap            27
     2020-03-08 16:31:37   Hostname        thermostat_buero-3939
     2020-03-08 16:31:37   IPAddress       192.168.178.104
     2020-03-08 16:55:00   LWT             Online
     2020-03-08 17:16:57   LoadAvg         19
     2020-03-08 16:31:37   Module          Shelly 1 U2
     2020-03-08 17:16:57   MqttCount       3
     2020-03-08 16:31:37   RestartReason   Power on
     2020-03-08 17:16:57   SI7021_Humidity 58.0
     2020-03-08 17:16:57   SI7021_Temperature 22.9
     2020-03-08 15:50:47   SaveData        on
     2020-03-08 15:50:46   SetOption26     on
     2020-03-08 17:16:57   Sleep           50
     2020-03-08 17:16:57   SleepMode       Dynamic
     2020-03-08 15:50:45   StateText1      off
     2020-03-08 15:50:46   StateText2      on
     2020-03-08 15:50:46   StateText3      toggle
     2020-03-08 15:50:46   StateText4      hold
     2020-03-08 17:16:57   Switch1         off
     2020-03-08 17:16:57   TempUnit        C
     2020-03-08 17:16:57   Time            2020-03-08T17:16:57
     2020-03-08 17:16:57   Uptime          0T00:45:27
     2020-03-08 17:16:57   UptimeSec       2727
     2020-03-08 16:31:37   Version         8.1.0.8(643d3d0-tasmota)
     2020-03-08 16:31:37   WebServerMode   Admin
     2020-03-08 17:16:57   Wifi_AP         1
     2020-03-08 17:16:57   Wifi_BSSId      B4:FB:E4:4D:94:2C
     2020-03-08 17:16:57   Wifi_Channel    1
     2020-03-08 17:16:57   Wifi_Downtime   0T00:00:06
     2020-03-08 17:16:57   Wifi_LinkCount  1
     2020-03-08 17:16:57   Wifi_RSSI       70
     2020-03-08 17:16:57   Wifi_SSId     
     2020-03-08 17:16:57   Wifi_Signal     -65
     2020-03-08 16:31:37   state           off
     2020-03-08 16:55:52   subscriptions   cmnd/tasmotas/# cmnd/thermostat.buero_fb/# cmnd/thermostat_buero/#
Attributes:
   IODev      m2server
   autocreate 0
   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/thermostat_buero/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   event-on-change-reading .*
   icon       hue_filled_outlet
   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
   model      tasmota_basic_state_power1
   readingList tele/thermostat_buero/LWT:.* LWT
  tele/thermostat_buero/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/thermostat_buero/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/thermostat_buero/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/thermostat_buero/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/thermostat_buero/POWER1:.* state
  stat/thermostat_buero/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       MQTT2_DEVICE
   setList    off:noArg    cmnd/thermostat_buero/POWER1 0
  on:noArg     cmnd/thermostat_buero/POWER1 1
  toggle:noArg cmnd/thermostat_buero/POWER1 2
  setOtaUrl:textField cmnd/thermostat_buero/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/thermostat_buero/upgrade 1
   setStateList on off toggle
   stateFormat SI7021_Humidity% - SI7021_Temperature°C - state



Otto123

#1
Hi,

Umsetzung per FTUI ist nicht mein Ding.
Das hohe Endziel wäre, wenn Du das Ganze per Regeln im Tasmota machen würdest! dann läuft es von FHEM unabhängig.
https://github.com/arendst/Tasmota/wiki/Rule-Cookbook#thermostat-example

Bis dahin hätte ich den Vorschlag es mit einem extra Device zu machen, entweder THRESHOLD oder einem DOIF.

Für eine DOIF hätte ich folgenden Vorschlag von einem meiner Feuchtigkeitsregler:
defmod di_threshold_WG DOIF ([SensorWG:humidity]<([$SELF:desired]-[$SELF:hysterese]/2)) \
(set PSD1_Sw off) \
DOELSEIF ([SensorWG:humidity]>([$SELF:desired]+[$SELF:hysterese]/2)) \
(set PSD1_Sw on)
attr di_threshold_WG checkall event
attr di_threshold_WG cmdState off|on
attr di_threshold_WG readingList desired,hysterese
attr di_threshold_WG room Wintergarten
attr di_threshold_WG setList desired:60,62,64,66,68,70 hysterese:2,5,10
attr di_threshold_WG webCmd desired:hysterese


Du müsstest Sensor, Werte in der setList und die Schaltkommandos anpassen (tauschen on und off)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

jbraeu

Hi ,

danke, klappt super! Aber du hast recht, das ding muss auch ohne Server funktionieren.. Kackt der Raspi ab wird die Bude kalt, ganz schlecht.


define di_therm_buero DOIF ([MQTT2_thermostat.buero:SI7021_Temperature]<([$SELF:desired]-[$SELF:hysterese]/2)) \
(set MQTT2_thermostat.buero on) \
DOELSEIF ([MQTT2_thermostat.buero:SI7021_Temperature]>([$SELF:desired]+[$SELF:hysterese]/2)) \
(set MQTT2_thermostat.buero off)
setuuid di_therm_buero 5e66642c-f33f-20ab-e010-f9d7b61a3a061c2a
attr di_therm_buero alias Thermostat Buero Sollwert
attr di_therm_buero icon temp_control
attr di_therm_buero checkall event
attr di_therm_buero cmdState off|on
attr di_therm_buero readingList desired,hysterese
attr di_therm_buero room MQTT2_DEVICE
attr di_therm_buero setList desired:18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0 hysterese:0.5,1,2,4,5
attr di_therm_buero webCmd desired:hysterese

Beta-User

Kann nicht sagen, ob das die beste firmware-Variante ist, aber eigentlich sollte sowas mit einer Raumthermostat-Funktionalität ohne FHEM abbildbar sein bzw. nur mit einer Solltemperaturstellung via FHEM.

Suche liefert z.B. https://github.com/klausahrenberg/WThermostatBeca (ist aber andere Hardware und wäre ggf. auf den shelly anzupassen, was aber vermutlich nicht der große Act wäre).

Auf alle Fälle ist es m.E. zu empfehlen, sowas auf autonom entscheidende Hardware auszulagern (ob es undbedingt mit WLAN sein muß ist eine andere Frage), aber leider ist da die Auswahl an bezahlbaren Alternativen nicht so groß. Es könnte auch Sinn machen, mal bei den "Tasmota-Jungs" anzuklopfen, ob die sowas implementieren können (ggf. als speziellen "flavour", wie bei den Rollladen-Geschichten auch).

Wenn ihr den MQTT2-Weg weitergeht, gibt's für "gute" firmware auch gerne ein attrTemplate  ;) .
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

kabanett

Zitat von: Beta-User am 09 März 2020, 17:13:23
Auf alle Fälle ist es m.E. zu empfehlen, sowas auf autonom entscheidende Hardware auszulagern (ob es undbedingt mit WLAN sein muß ist eine andere Frage), aber leider ist da die Auswahl an bezahlbaren Alternativen nicht so groß. Es könnte auch Sinn machen, mal bei den "Tasmota-Jungs" anzuklopfen, ob die sowas implementieren können (ggf. als speziellen "flavour", wie bei den Rollladen-Geschichten auch).

Hallo,
oder einfach diesen Typ benutzen ;) https://forum.fhem.de/index.php/topic,80703.0.html
Gibt es mittlerweile in verschiedenen Versionen. Wzut hat ein Modul dafür geschrieben, welches offiziell in FHEM ist. https://fhem.de/commandref_DE.html#BEOK
Weekprofil funktioniert auch damit und kostet so um die 30- 40€. Was will man mehr :) https://www.amazon.de/s?k=beok+thermostat+wifi

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

jbraeu

Nachdem ich mich jetzt schon einige Zeit mit dem Thema auseinandergesetzt habe, glaube ich einen ganz anderen Weg einzuschlagen..

HmIP-FALMOT-C12 + MIOB + Raspberrymatic (gibts sowas evtl. auch opensource)

Habt Ihr Erfahrung damit oder sogar sowas im Betrieb?
Mir würde vorschweben:
- Nachrüstung Heizkreisverteiler mit motorischem Abgleich (Wie stellt man dann die Durchflussventile ein oder kommen die raus?)
- dynamische PWM oder PID Regelung der Heizkreis pumpe je nach Anforderung
- Dazu müsste aber m.E. nach an jedem VL/RL ein Fühler dran um per Hysterese die Ventilstellung zu beeinflussen was der Homematic anscheinend nicht macht. (vllt. Blödsinn nur so ein Gedanke)
- Das ganze Geraffel kostet eine hübsche Stange geld, allein 3 Aktoren sind 600.- dann das MIOB für 100 und den ccu + Raumthermostate etc. etc. würde mal sagen das mal 1,5k bluten muss.
- Den Fußboden als thermischen Speicher benutzen, wenn am Tag die Solarthermische über 35°C läuft einfach alle Heizkreise aufmachen um die Temperaturspreizung besser auszunutzen.

Eigentlich würde ich gern den MQTT2 Weg weitergehen weil das recht gut funktioniert..

jbraeu

Zitat von: kabanett am 09 März 2020, 18:12:10
Hallo,
oder einfach diesen Typ benutzen ;) https://forum.fhem.de/index.php/topic,80703.0.html
Gibt es mittlerweile in verschiedenen Versionen. Wzut hat ein Modul dafür geschrieben, welches offiziell in FHEM ist. https://fhem.de/commandref_DE.html#BEOK
Weekprofil funktioniert auch damit und kostet so um die 30- 40€. Was will man mehr :) https://www.amazon.de/s?k=beok+thermostat+wifi

Gruß

Genau das will ich nicht mehr, das irgendwelche Kinder/Besuch etc. am Thermostat rumspielen.. Ihr kennt das sicher ;) Das soll fix mit 2-4 Zeiten eingestellt werden oder per anwesenheitskennung und aus der Dose hängt ein DS1820 oder ein AM2301 etc. dann ist damit ruhe :)