Transform device via Script oder LAN füttern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Transform device via Script oder LAN füttern

Beitrag von klassisch » 03.09.2016, 05:10

Hallo,
möchte eigentlich den Daten von einem externen Sensor in eine HM-Gerät einspeisen.
Bei T-H geht das schön mit dem CUxD Thermostat.
Jetzt habe ich noch zusätzlich den Luftdruck.
Dachte das ginge mit einem Transform 90-3 Wrapper device.

Gerät ist angelegt und in der CUxD Konsole "Status" bestätigt

Code: Alles auswählen

CUX9000001:	Luftdruck-> dp('Luftdruck') samples(2)
			0.00 -> 0.00
			2000.00 -> 2000.00
			

Gerät mit linearer Kennlinie

Versuche den CUxD mit Daten
per Lan

Code: Alles auswählen

dom.GetObject('CUxD.CUX9000001:1.Luftdruck').State('1005.74')
oder per Skript

Code: Alles auswählen

dom.GetObject("CUxD.CUX9000001:1.Luftdruck").State("888.88")
zu versorgen, schlugen fehl.

Auf der Geräteseite des CUxD ist er mittlerweile auch angekreuzt (X). Also er hat was empfangen, was mir auch die Datenpunktbeobachtung des CCU.io bestätigt. Gleicher Zeitstempel wie der T-H-CUxD, der im gleichen Zug mit Daten versorgt wird.

Aber in der WebUI sehe ich unter dem Gerät noch immer den Wert 0.
Was mache ich falsch?

Edit: Habe eine erste Spur: http://homematic-forum.de/forum/viewtop ... ct#p121165
(90) Wrapper Transform
neuer Datenpunkt SET_STATE
Und auch die BA schreibt was dazu
SET_STATE float scheibend neuen Eingabewert schreiben (z.B. per HMScript, USE_HMDATAPT muss deaktiviert sein!)
Mal sehen
Edit2

Code: Alles auswählen

dom.GetObject("CUxD.CUX9000001:1.SET_STATE").State("888.88");
in einem Skript funktioniert schon mal.
Edit3
Und mit einem

Code: Alles auswählen

"&antwort3=dom.GetObject('CUxD." + cfg.cuxdPressureId + ":1.SET_STATE').State('" + climateValuesSensor1.pressure + "')";
im arduino Progracode eines WeMos landet das Datum aus der Variablen climateValuesSensor1.pressure dann auch in der CCU.
Somit gibt es jetzt eine ziemlich universell nutzbare HM-Geräterepräsentanz mit remote- bzw. Skript Eingang.
Vielen Dank, lieber Uwe, fürs Ausdenken und Implementieren!
Zuletzt geändert von klassisch am 03.09.2016, 08:41, insgesamt 2-mal geändert.

dondaik
Beiträge: 12926
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1602 Mal
Danksagung erhalten: 222 Mal

Re: Transform device via Script oder LAN füttern

Beitrag von dondaik » 03.09.2016, 11:53

danke für die arbeit / beschreibung !
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

BladeRunner82
Beiträge: 19
Registriert: 11.01.2017, 12:00

Re: Transform device via Script oder LAN füttern

Beitrag von BladeRunner82 » 18.01.2017, 19:58

Hiho,

ich stehe genau vor dem gleichen Problem, und zwar habe ich einen Arduino, der Luftdruckwerte via USB an die CCU schickt. Im Terminal von Cuxd erscheinen die Werte auch, aber weiter komme ich nicht. So ganz verstehe ich auch nicht, was da oben beschrieben wird, könnt ihr mir da weiterhelfen ?

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Transform device via Script oder LAN füttern

Beitrag von klassisch » 19.01.2017, 04:19

Du hast ein anderes Problem wie oben beschrieben. Oben werden die Werte via (W)LAN eingeliefert, während Du via USB einlieferst. Wir sehen im CUxD-Terminal diese Werte gar nicht. Die Werte werden hier so behandelt, als würden sie durch ein HM-Scrpt CCU-intern eingeliefert.
Ob das auch via USB geht, kann ich nicht sagen, weil ich das noch nie gemacht habe. Was Du aber versuchen kannst:
- Als Beispiel CUxD wie oben bzw. S. 68 der CUX 1.8 Bedienungsanleitung beschrieben konfigurieren (ganz wichtig: Haken bei USE_HMDATAPT raus: - "Zum Beschreiben des Datenpunktes per HMScript muss dieser Parameter deaktiviert sein! "HM" raus)" und statt den reinen Zahlenwerten per USB den Befehl
dom.GetObject("CUxD.CUX9000001:1.SET_STATE").State("888.88");
von Deinem Arduino an die CCU abschicken. Dabei wäre "CUxD.CUX9000001" das Transform Device und "888.88" der Wert. Mit dieser Zeile in einem HM-Skript kannst Du jedenfalls den Wert ändern. Wenn wir über LAN einliefern machen wir noch "&antwort3=" davor., also
&antwort3=dom.GetObject("CUxD.CUX9000001:1.SET_STATE").State("888.88");
Ob und wie das bei USB geht - keine Ahnung, sorry.
- Du könntest den Arduino gegen einen WeMos austauschen (weitgehend kompatibel, <4EUR) und über WLAN kommunizieren. So machen wir das im WeMos-Thread und dort http://www.renmet.com/wiki/index.php?title=Hauptseite gibt es auch einige Hinweise.
- In der Bedienungsanleitung des CUxD suchen, ob ein passender Weg beschrieben wird. USB wird dort 101 mal erwähnt.
- einen Extra Thread mit dieser Frage hier im CUxD Unterforum eröffnen. Vielleicht hat das schon mal jemand gemacht.

Wie auch immer, wäre es prima, wenn Du dann hier einen kurzen Hinweis über die Lösung hinterassen könntest.

BladeRunner82
Beiträge: 19
Registriert: 11.01.2017, 12:00

Re: Transform device via Script oder LAN füttern

Beitrag von BladeRunner82 » 19.01.2017, 10:06

Danke für die Antwort,

ich werde die Sache mit der USB Verbindung kippen, da ich sehr sicher immer wieder an den Arduino ran möchte, und das wäre nicht möglich wenn dieser vbia USB mit der CCU verbunden ist. Ich habe jetzt ein LAN Shield geordet und werde damit weiterarbeiten.

Danke trotzdem für deine Hilfe

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Transform device via Script oder LAN füttern

Beitrag von klassisch » 19.01.2017, 18:18

Ja, tu das! Und wenn das LAN funktioniert, sollte dieser Thread hier genau anwendbar sein.

Antworten

Zurück zu „CUxD“