djskydriver änder mal den eintrag auf dpt:9 log das ganze mal und las uns mal sehen. soll: type: list visu_acl: rw knx_dpt : '275.100' knx_dpt :9 knx_init : 2/7/22 knx_send : 2/7/26 knx_listen : 2/7/22
Ankündigung
Einklappen
Keine Ankündigung bisher.
8 Byte Objekte
Einklappen
X
-
am besten soll mit initial_value: [0,0,0,0] vorbelegen oder in einer Logik die Länge des Arrays abfragen bevor man direkt spezielle Einträge des abfragt.
Standardmäßig wäre beim Start das soll Item ein Array mit der Länge 0 (also []). Wenn Du nun mit sh.bath.temperature.soll()[0] das erste Element abfragst, muss das einen Fehler liefern.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
- Likes 1
Kommentar
-
Oh man, ja klar, darum kommt die Meldung auch nur einmal beim Start von SH, DankeZuletzt geändert von djskydriver; 10.04.2019, 19:03.
Kommentar
-
So, Anzeige funktioniert jetzt TOP, nur wird beim Klicken auf die Schaltflächen (+-) intern auf die unhandliche Sollwertliste zugegriffen.
Ich habs widget nun abgeändert auf:
Code:// ----- device.rtr ----------------------------------------------------------- $.mobile.activePage.find('div[data-widget="device.rtr"] > div > a[data-icon="minus"]').on( { 'click': function (event, response) { var uid = $(this).parent().parent().attr('id'); var step = $('#' + uid).attr('data-step'); var item = $('#' + uid + 'set').attr('data-item'); var temp1 = (Math.round((widget.get(item)[0] - step) * 10) / 10).toFixed(1); widget.get(item)[0] = temp1; io.write(item, widget.get(item)); } });
Nachtrag, es wird gar nichts auf den Bus geschrieben:
Code:Item bath.temperature.soll: problem running <bound method KNX.update_item of <plugins.knx.KNX object at 0x682f41b0>>: unorderable types: str() < int() Traceback (most recent call last): File "/usr/local/smarthome/lib/item.py", line 1039, in __update method(self, caller, source, dest) File "/usr/local/smarthome/plugins/knx/__init__.py", line 562, in update_item self.groupwrite(ga, item(), self.get_iattr_value(item.conf, KNX_DPT)) File "/usr/local/smarthome/plugins/knx/__init__.py", line 154, in groupwrite pkt.extend(self.encode(payload, dpt)) File "/usr/local/smarthome/plugins/knx/__init__.py", line 266, in encode return dpts.encode[str(dpt)](data) File "/usr/local/smarthome/plugins/knx/dpts.py", line 366, in en275100 payload = en9(value[v]) File "/usr/local/smarthome/plugins/knx/dpts.py", line 161, in en9 if value < 0: TypeError: unorderable types: str() < int()
Zuletzt geändert von djskydriver; 11.04.2019, 12:14.
Kommentar
-
So Jungs, mein Morgen is im A**** aber es hat sich gelohnt:
Wichtig im Heizungsaktor müssen absolute Sollwerte eingestellt sein!
Code:var uid = $(this).parent().parent().attr('id'); var step = $('#' + uid).attr('data-step'); var item = $('#' + uid + 'set').attr('data-item'); var temp1 = (Math.round((widget.get(item)[0] * 1 - step * 1) * 10) / 10).toFixed(2); widget.get(item)[0] = temp1; var temp2 = (Math.round((widget.get(item)[1] * 1 - step * 1) * 10) / 10).toFixed(2); widget.get(item)[1] = temp2; var temp3 = (Math.round((widget.get(item)[2] * 1 - step * 1) * 10) / 10).toFixed(2); widget.get(item)[2] = temp3; var temp4 = (Math.round((widget.get(item)[3] * 1 - step * 1) * 10) / 10).toFixed(2); widget.get(item)[3] = temp4; io.write(item, [parseFloat(temp1), parseFloat(temp2), parseFloat(temp3), parseFloat(temp4)]);
Code:temperature: name: Temperatur type: num visu_acl : rw sqlite : yes knx_dpt : 9 knx_listen : 2/7/21 knx_init : 2/7/21 sv_widget: - "{{ device.rtr('item', 'item.name', 'item', 'item.soll.comfort', 'item.mode', 'item.night', 'item.frost', 'item.state', '', 0.5) }}" - "{{ plot.period('item-plot', 'item', 'avg','24h') }}" soll: type: list visu_acl: rw knx_dpt : '275.100' initial_value: [0,0,0,0] knx_init : 2/7/22 knx_send : 2/7/26 knx_listen : 2/7/22 comfort: visu_acl: rw eval_trigger: bath.temperature.soll eval: sh.bath.temperature.soll()[0] sollwertverschiebung: type : num visu_acl : rw knx_dpt : 9 knx_init : 2/7/25 knx_listen : 2/7/25 knx_send : 2/7/23
Kommentar
-
Hab jetzt ne Komplette Neuinstallation von SmartVisu+SmarthomeNG hinter mir.
Kann mir jeamdn sagen, was das ist, wenn man beim RTR auf + und - Klickt aber keine Daten an den Bus gesendet werden, hab mal die verwendet und bekomme die Ausgabe in der Konsole:
Code:[io.smarthome.py] sending data: {"cmd":"item","id":"living.temperature.soll.comfort","val":"23.0"}
Ist aber nur beim RTR so, Dimmer und Schalter funktionieren.
Kommentar
-
Zitat von djskydriver Beitrag anzeigen... man muss eben nur drauf achten, dass beide Nachkommastellen befüllt sind, sonst gibts den letzten Fehler beim Codieren.
Beim Attribut knx_dpt muß zwingend der Datentyp string verwendet werden für die Angabe des Datenpunktes, besonders, wenn daran 0 angeschlossen sind (16.000, 275.100)
Ein knx_dpt: 275.100 wird eingelesen aus der yaml Datei als 275.1 und daraus entsteht der Datenpunkttyp 275.1 für das knx Plugin. Natürlich findet dann der Encoder/Decoder das dann nicht mehr in seiner Liste als gültigen Datenpunkt.
Daher ist die Angabe knx_dpt: '275.100' notwendig.
Kommentar
-
Im Backend unter Items sehe ich keine Aktualisierung des Sollwerts aber im Browser kann ich verfolgen, dass über den Websocket die korrekten Daten verschickt werden, dass kann doch nicht sein!?!
Gibts noch ne Möglichkeit die Kommunikation zwischen knxd und javascript zu loggen?Zuletzt geändert von djskydriver; 13.04.2019, 10:58.
Kommentar
-
Die Kommunikation läuft vom Websocket an SmartHomeNG, nicht an den knxd. Wenn also beim SmartHomeNG nichts ankommt, dann wird auch von SmartHomeNG nichts an den knxd weitergeschickt. Du mußt also zunächst schauen, warum bei SmartHomeNG nichts ankommt.
Dazu müßtest Du Dich mal mit Logging beschäftigen und dir anzeigen lassen, was das visu_websocket plugin an Infos bekommt...
Kommentar
Kommentar