Homematic mit Nicht Homematic verbinden.

Begonnen von blackdevil2k1, 03 Februar 2014, 00:07:52

Vorheriges Thema - Nächstes Thema

frank

wie sieht es denn mit freezes/verzögerungen in fhem aus? wenn du im wakeup-mode arbeitest, ist das timing entscheidend.
schon mal apptime und perfmon angeschaut?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

deckelsmouk

Habe das ganze jetzt mal eine Zeit lang beobachtet.
Perfmon hat kein Problem gemeldet.

Apptime ergibt folgendes:

name             function    max  count    total  average maxDly
                         tmr-at_Exec      HASH(0x27784b0)    108      5      520   104.00      4 HASH(at_OG.szcd.VT_Sensor)
                         tmr-at_Exec      HASH(0x2555c78)    103      5      504   100.80     23 HASH(at_OG.szsa.VT_Sensor)
                         tmr-at_Exec      HASH(0x27ca1b0)     99      5      494    98.80     59 HASH(at_OG.at.VT_Sensor)
                           myJeeLink         JeeLink_Read     90    388     6831    17.61      0 HASH(myJeeLink)
                    OG.szcd.VT_Sensor           CUL_HM_Set     62      5      296    59.20      0 HASH(OG.szcd.VT_Sensor); OG.szcd.VT_Sensor; virtTemp; 19.4
                   OG.szsa.VT_Sensor           CUL_HM_Set     59      5      279    55.80      0 HASH(OG.szsa.VT_Sensor); OG.szsa.VT_Sensor; virtTemp; 19.2
                     OG.at.VT_Sensor           CUL_HM_Set     56      5      278    55.60      0 HASH(OG.at.VT_Sensor); OG.at.VT_Sensor; virtTemp; 20.4


Von den 3 Sensoren wurden auf 2 Ventilen die Werte korrekt übernommen und auf dem dritten (OG.at.VT_Sensor) hat es über eine Stunde gedauert bis
die richtige Temperatur gesendet wurde ?

Mitch

Hallo Zusammen,

ich habe seit längerem einen Tempfühler laufen, der über ein virtuelles Device an zwei HM Thermostate gepeere ist.
funktioniert auch perfekt.

Jetzt habe ich dem virtuellen Device noch einen Channel gegeben, um in einem anderen Raum auch einen Tempfühler mit einem HM Theromstat zu peeren.

Kann es sein, dass das so nicht geht und ich nicht mehrere Channels verwenden kann?

Im Moment bekommen wohl alle Thermostate die Temperatur über den Channel 2 mitgeteilt, obwohl das Peering stimmt.

Hier noch die Devices:

Internals:
   DEF        221144
   IODev      HMLan
   NAME       vTemp
   NR         613
   NTFY_ORDER 50-vTemp
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 vTemp_Sensor_Flur
   channel_02 vTemp_Sensor_Buero
   protSnd    74 last_at:2015-11-03 13:49:32
   protState  CMDs_done
   Readings:
     2015-10-29 13:53:07   .protLastRcv    2015-10-29 13:53:07
     2015-11-03 13:49:32   state           CMDs_done
   Helper:
     HM_CMDNR   1
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       vccu       VCCU
     Mrssi:
       mNo
       Io:
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
       vrt        1
     Rssi:
     Shadowreg:
Attributes:
   IODev      HMLan
   IOgrp      VCCU
   expert     2_full
   group      virtual
   model      virtual_2
   msgRepeat  0
   room       Unsorted
   subType    virtual
   webCmd     virtual


Internals:
   .triggerUsed 1
   DEF        22114401
   NAME       vTemp_Sensor_Flur
   NR         614
   NTFY_ORDER 50-vTemp_Sensor_Flur
   STATE      set_virtTemp 21.4
   TYPE       CUL_HM
   chanNo     01
   device     vTemp
   peerList   HZ_Flur_oben_Weather,HZ_Flur_unten_Weather,
   CHANGETIME:
   Helper:
     Dblog:
       Temperature:
         Mydblog:
           TIME       1446555155.67127
           VALUE      21.4
   Readings:
     2015-11-03 12:17:43   peerList        HZ_Flur_oben_Weather,HZ_Flur_unten_Weather,
     2015-11-03 13:52:35   state           set_virtTemp 21.4
     2015-11-03 13:52:35   temperature     21.4
   Helper:
     fkt        virtThSens
     virtTC     00
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
       vrt        1
     Shadowreg:
     Vd:
       cmd        8670221144000000
       idh        341309
       idl        17408
       msgCnt     38
       msgRed     0
       next       1446555291.37106
       nextM      1446555291.37106
       typ        2
       val        00D6
       vin        21.4
Attributes:
   group      virtual
   model      virtual_1
   peerIDs    2E63BE01,2E673001,
   room       Unsorted
   verbose    0
   webCmd     press short:press long


Internals:
   .triggerUsed 1
   DEF        22114402
   NAME       vTemp_Sensor_Buero
   NR         617
   NTFY_ORDER 50-vTemp_Sensor_Buero
   STATE      set_virtTemp 21.5
   TYPE       CUL_HM
   chanNo     02
   device     vTemp
   peerList   HZ_Buero_Weather,
   CHANGETIME:
   Helper:
     Dblog:
       Temperature:
         Mydblog:
           TIME       1446555100.8309
           VALUE      21.5
   Readings:
     2015-11-03 12:55:27   peerList        HZ_Buero_Weather,
     2015-11-03 13:51:40   state           set_virtTemp 21.5
     2015-11-03 13:51:40   temperature     21.5
   Helper:
     fkt        virtThSens
     virtTC     00
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
       vrt        1
     Shadowreg:
     Vd:
       cmd        8670221144000000
       idh        341309
       idl        17408
       msgCnt     38
       msgRed     0
       next       1446555290.81004
       nextM      1446555290.81004
       typ        2
       val        00D7
       vin        21.5
Attributes:
   group      virtual
   model      virtual_2
   peerIDs    2EA21D01,
   room       Unsorted
   verbose    0
   webCmd     press short:press long
FHEM im Proxmox Container

Hollo

Zitat von: Mitch am 03 November 2015, 13:53:30
...Kann es sein, dass das so nicht geht und ich nicht mehrere Channels verwenden kann?
...
Korrekt. Die Thermostate gucken in dem Fall wohl nur auf das gepeerte Device und ignorieren unterschiedliche Channel.
Ich habe es zumindest mit 1 virt. Device und 2 Kanälen nicht hinbekommen bzw. ähnliche Probleme wie Du gehabt.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Mitch

Wobei ja der Channel gepeered ist und nicht das Device?  ???

Werde jetzt mal noch ein virtuelles Device anlegen und testen.
FHEM im Proxmox Container

drhirn

Hi,

kann ich die Geschichte so lösen, dass nicht ein at stur Befehle sendet, sondern der Wert des virtuellen Temperatursensors nur geändert wird, wenn sich die  Temperatur ändert?

Danke!
Stefan

Mitch

Das mache ich so, hat aber auch nicht mit mehreren Channels funktioniert.
FHEM im Proxmox Container

drhirn

Zitat von: Mitch am 05 November 2015, 14:05:22
Das mache ich so, hat aber auch nicht mit mehreren Channels funktioniert.

War das die Antwort auf meine Frage? Wenn ja, wie hast du das gemacht?

Mitch

Den at brauchst Du schon noch, allerdings trigger ich damit eine Routine aus meiner 99_myUtils:

sub tempFlur2HM() {
  my $Tist=ReadingsVal("NC_WS_23_0","temperature",20.0);
  my $Tsoll=ReadingsVal("vTemp_Sensor_Flur","temperature",20.0);
  if($Tist ne $Tsoll) {
    fhem("set vTemp_Sensor_Flur virtTemp $Tist")
  } 
}
FHEM im Proxmox Container

drhirn


Hollo

Der Sinn erschliesßt sich mir trotzdem nicht.   ???
Der externe Fühler ermittelt die IST-Temperatur und die soll auch als IST-Temp an den Thermostaten weitergegeben werden.
Ob die der SOLL-Temp entspricht ist doch für diese Kette total uninteressant, das soll ja am Ende das Thermostat regeln.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

drhirn

Da gab's eine kleine Vewirrung. Ich möchte ja die IST-Temperartur nur senden, wenn sie sich geändert hat und nicht einfach alle zwei Minuten. Sogesehen ist das Beispiel von Mitch für mich nicht ganz passend, läßt sich aber leicht umbauen.

Mitch

Zitat von: Hollo am 06 November 2015, 09:13:10
Der Sinn erschliesßt sich mir trotzdem nicht.   ???
Der externe Fühler ermittelt die IST-Temperatur und die soll auch als IST-Temp an den Thermostaten weitergegeben werden.
Ob die der SOLL-Temp entspricht ist doch für diese Kette total uninteressant, das soll ja am Ende das Thermostat regeln.

Das "Problem" ist, dass die Thermostate ohne externen Fühler total "übersteuern".

z.B. ist Soll 21 Grad, gemessen ist aber schon 23 Grad, trotzdem steht das Ventil auf 80%.
Ist wohl bei HM normal und wurde schon öfter diskutiert.

Mit einem externen Fühler, entweder HM Wandthermostat, oder irgend ein "Fremdfühler", kann man das "Problem" eliminieren.


In einem Scriptbeispiel ist IST der Wert, den der Fühler misst und der SOLL der Wert, der im virtuellen Sensor steht und übermittelt wird.
Die wird alle 5 Minuten mit at gecheckt, der neue Wert aber nur geschrieben, wenn er ein anderer ist.
Ich hoffe, dass im Peering auch nur der Wert an das Thermostat übermittelt wird, wenn er sich geändert hat, um nicht so viel zu senden.
Also Weg ist ja: Fühler -> virtueller HM Sensor -> Thermostat

Falls das Thermostat sowieso alle 5 Minuten "befeuert" wird, egal welcher Wert, dann kann man sich das sparen  ;)
FHEM im Proxmox Container

Hollo

Zitat von: Mitch am 06 November 2015, 10:02:16
...In einem Scriptbeispiel ist IST der Wert, den der Fühler misst und der SOLL der Wert, der im virtuellen Sensor steht und übermittelt wird.
Die wird alle 5 Minuten mit at gecheckt, der neue Wert aber nur geschrieben, wenn er ein anderer ist...
Jetzt ist der Groschen (bin schon älter) gefallen.  ;D

Bei mir wird per at der Wert des Sensors (IST) per "set blabla virtTemp" in den virtuellen Sensor geschrieben (SOLL); unabhängig von einer Temp-Änderung.
Du rufst per at Deine Funktion auf, und schreibst die Temp nur bei Veränderung!?
Ich denke mal, dass das egal ist, weil der Thermostat ja mittels Peering mit dem virtuellen Device kommuniziert; der Wert der Temperatur spielt dabei keine Rolle.

Diese Kette funktioniert meiner Meinung nach immer korrekt; auf beiden Wegen.
Die Frage ist, warum der Thermostat manchmal nicht mit dieser Temp arbeitet und stattdessen die interne (zu hohe) Temp nimmt...
Eigentlich gibt es ja nur 2 Möglichkeiten: Empfangs- oder Timing-Problem; die Antwort wäre evtl. der Weg zur Lösung.  :-[
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Incubant

Hallo zusammen,

ich versuch mich auch gerade an der Inbetriebnahme der HM-CC-RT-DN. Ich will die Ist Temperatur auch mit den Lacrosse messen und an ein virtuelles Device schicken. Das funktioniert soweit auch ganz gut. Das peering wird mir mit "set hm peerXref" auch in beide Richtungen angezeigt. Der Lacrosse schreibt alle  minuten den Wert ins virtuelle Device, aber im Weather Channel bzw. im Thermostat kann ich nichts davon sehen. Und es tut sich an dem Thermostat nichts. Das heißt das Thermostat reagiert nicht und in den Readings steht auch immer die measured temp des thermostat. Jetzt hab ich zwei Fragen, wie muss ich den Modus am Thermostat einstellen bzw. ist das egal? bzw. an welchen Variablen kann ich sehen, wie das Ventil arbeitet oder mit welcher gemessenen Zeit das Thermostat arbeitet? in diesem Artikel http://www.meintechblog.de/2013/10/neue-thermostate-von-homematic-high-end-heizungssteuerung-zum-kleinen-preis-mit-fhem/#more-3488 wird auf einen Actuator in % angezeigt, aber ich kann nichts finden.