Hi Thorsten,
ich wollte mich erst mal auf die Einzelraumsteuerung beschränken, die Heizungssteuerung kümmert sich um Vorlauftemperatur und Außentemperatur.
Wie du angemerkt hast, wäre es sicher einfacher nur ein Aktor als Ventilsteller zu nehmen und FHEM den Rest zu überlassen...
Habs aber dennoch mal in HBW-CC-VD-2 eingebaut.

Der PID Regler lässt sich intern (extern hab ich noch nicht getestet) mit dem 1-Wire Temperatur Sensor peeren. Der (fest verküpfte) Valve Kanal setzt dann den Wert an einem Ausgangspin um.
https://github.com/loetmeister/HBWired/tree/master/HBW-CC-VD-8Leider ist bei zwei Sachen noch der Wurm drin.

1. In FHEM bekomme ich nicht die Option angezeigt im PID Kanal die "DESIRED_TEMP" zu setzen, obwohl set request="TEMP_SET" frame und
operations write gesetzt sind. Nur "config", "inhibit" und "peer"...

TEMP_GET und INFO_TEMP funktionieren im Temperatur Kanal...
<paramset type="VALUES" id="hmw_pid_ch_values">
<parameter id="DESIRED_TEMP" operations="read,write,event" control="TEMP.LEVEL">
<logical type="float" default="0.0" min="0.0" max="30.0" unit="℃"/>
<physical type="integer" interface="command" value_id="TEMP">
<set request="TEMP_SET"/>
<get request="TEMP_GET" response="INFO_TEMP"/>
<event frame="INFO_TEMP"/>
</physical>
<conversion type="float_integer_scale" factor="100"/>
</parameter>
<parameter id="INHIBIT" operations="read,write,event" control="NONE" loopback="true">
<logical type="boolean" default="false"/>
<physical type="integer" interface="command" value_id="INHIBIT">
<set request="SET_LOCK"/>
</physical>
</parameter>
</paramset>
Das zweite, noch seltsamere Problem betrifft den Arduino....
Ohne HBWLinkSender / HBWLinkReceiver im Device (also beides 'NULL') funktioniert alles soweit. Valve- und Temperaturkanäle senden ihren Status, etc. Ausgabe im Seriellen Monitor ist ok.
Wenn ich aber meine HBWLinkSender / HBWLinkReceiver dazu nehme (ohne ein peering gesetzt zu haben) startet der Arduino nach einiger zeit neu.
Bevor das passiert gab es sonderbare Effekte das im Seriellen Monitor Zeichen der debug Ausgabe verändert haben ('!' statt '%' oder nicht druckbare Zeichen) - was eigentlich statischer Text ist. Klingt als gäbe es Pointer die an die falsche Speicheradresse zeigen oder verändert werden... was ich mir aber nicht erklären kann..

z.B.
T: FD:00:00:00:01:98:42:00:00:30:06:69:02:C8:70:89:46
R: FD:42:00:00:30:19:00:00:00:01:02:77:50
R: ACK
Valve ch: 2 snd: 100%Der Fette Text sollte "send" sein... Schnöde hbwdebug Ausgabe...
hbwdebug("Valve ch: "); hbwdebug(channel); hbwdebug(" send: "); hbwdebug(level/2); hbwdebug("%\n");... davor ein
device->sendInfoMessage(channel, 2, &level);Um den Link Kram anzuschalten wenn man ihn wirklich braucht, habe ich erst mal #define Support_HBWLink_InfoMessage in HBWired.h gesetzt. Schöner wäre es, dies über den Sketch zu steuern, was meines Wissens aber nicht geht.
Hab mal statt "IMEvent" "InfoEvent" genommen. Ist etwas weniger Generisch/Kryptisch...
HBWLinkInfoMessageActuator: receiveInfoEvent
HBWLinkInfoMessageSensor: sendInfoEvent
https://github.com/ThorstenPferdekaemper/HBWired/compare/master...loetmeister:master#diff-340d6f8cfa01a00fa61bea3db56dfddfGruß,
Thomas