Statusanzeige Display 4x20
Moderator: Co-Administratoren
-
- Beiträge: 268
- Registriert: 13.05.2020, 17:56
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 23 Mal
Statusanzeige Display 4x20
Nachdem ich heute mehrere Stunden vergeblich versucht habe eine einfache Statusanzeige von Temeraturen einzurichten und ich immer noch nicht weiter gekommen bin, wende ich mich nun ans Forum. Ich habe mir mehrmals das Video von verdrahtet angeschaut (hier https://www.youtube.com/watch?v=MD-rv4umMLg&t=59s) und komme dennoch nicht klar. Also ich habe eine CCU 3 Raspberrymatic mit der neuesten Software von gestern (3.51.6.20200621) und versucht ein Script zu erstellen. Aber ich scheitere schon beim löschen des Displays. Wenn ich im Browser > http://192.168.0.40/control?cmd=LCDCMD,clear eingebe, funktioniert es Tadelos.
Im Script > string url = „http://192.168.0.40/control?cmd=LCDCMD,clear“;
dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State(„wget -q -O /dev/null ‚“#url#“‚“);
kommt aber ständig ein Error (siehe letztes Bild) Somit kann also die Statusanzeige auf den Display natürlich auch nicht funktionieren. Leider stehe ich mit Englisch auch auf "Kriegsfuß" und kann die Fehlermeldung so auch nicht richtig deuten. Bin eigentlich genau nach der Videoanleitung gegangen (IP natürlich an meine angepasst) und weiß einfach nicht warum schon bei einer Zeile Script nichts geht.
Kann mir bitte jemand auf die Sprünge helfen und erklären was ich falsch eingebe? Vielen Dank schon mal. Anbei mehre Bilder
Im Script > string url = „http://192.168.0.40/control?cmd=LCDCMD,clear“;
dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State(„wget -q -O /dev/null ‚“#url#“‚“);
kommt aber ständig ein Error (siehe letztes Bild) Somit kann also die Statusanzeige auf den Display natürlich auch nicht funktionieren. Leider stehe ich mit Englisch auch auf "Kriegsfuß" und kann die Fehlermeldung so auch nicht richtig deuten. Bin eigentlich genau nach der Videoanleitung gegangen (IP natürlich an meine angepasst) und weiß einfach nicht warum schon bei einer Zeile Script nichts geht.
Kann mir bitte jemand auf die Sprünge helfen und erklären was ich falsch eingebe? Vielen Dank schon mal. Anbei mehre Bilder
Zuletzt geändert von magnum1795 am 22.06.2020, 20:20, insgesamt 1-mal geändert.
- Baxxy
- Beiträge: 10850
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2230 Mal
Re: Statusanzeige Display 4x20
Naja, dein Script sieht schon etwas "verquer" aus. Schlecht kopiert oder noch schlechter abgetippt.magnum1795 hat geschrieben: ↑22.06.2020, 20:04Kann mir bitte jemand auf die Sprünge helfen und erklären was ich falsch eingebe?
Fogender Code...
Code: Alles auswählen
string url = "http://192.168.0.40/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
Grüße
Baxxy
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 268
- Registriert: 13.05.2020, 17:56
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 23 Mal
Re: Statusanzeige Display 4x20
sollte es, ja da hast du Recht. Aber genau so wie du es auch geschrieben hast, habe ich es reinkopiert und dann kommt eben die Fehlermeldung.
PS: jetzt habe ich es mal "Händisch" also nicht kopiert, eingegeben und nun kommt auch keine Fehlermeldung. Das verstehe wer will. Kann es beim Kopieren aus Note++ heraus zu solchen Fehlern kommen oder warum geht es wenn ich es händisch eintippe? Man, man man.
PSS: Habe jetzt das gesamte Script eingestellt. Es kommen keine Fehler mehr, jedoch word das Display aber auch nicht angesprochen. Gebe ich die url´s aber imBrowser ein, geht es und das Display zeigt richtig an bzw. wird gelöscht.
Wie werden denn die Daten von der CCU aus gesendet? Geht das per Funk oder über Netzwerk?
Warum aktuallisiert sich denn nun wieder nicht das Display? An was liegt es denn nun noch? Habe es über Status und bedienung > Programme mal händisch gemacht, tut sich aber auch nichts. Merkwürdig.
PS: jetzt habe ich es mal "Händisch" also nicht kopiert, eingegeben und nun kommt auch keine Fehlermeldung. Das verstehe wer will. Kann es beim Kopieren aus Note++ heraus zu solchen Fehlern kommen oder warum geht es wenn ich es händisch eintippe? Man, man man.
PSS: Habe jetzt das gesamte Script eingestellt. Es kommen keine Fehler mehr, jedoch word das Display aber auch nicht angesprochen. Gebe ich die url´s aber imBrowser ein, geht es und das Display zeigt richtig an bzw. wird gelöscht.
Wie werden denn die Daten von der CCU aus gesendet? Geht das per Funk oder über Netzwerk?
Warum aktuallisiert sich denn nun wieder nicht das Display? An was liegt es denn nun noch? Habe es über Status und bedienung > Programme mal händisch gemacht, tut sich aber auch nichts. Merkwürdig.
- Baxxy
- Beiträge: 10850
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2230 Mal
Re: Statusanzeige Display 4x20
Wen du Notepad++ meinst eher nicht.magnum1795 hat geschrieben: ↑22.06.2020, 20:39Kann es beim Kopieren aus Note++ heraus zu solchen Fehlern kommen
Bin mal deinem Link zu YT und von dort zum Script bei Verdrahtet gefolgt. Da ist das Script ja schon nonkonform abgebildet, somit konnte copy & paste nicht zum Erfolg führen.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
- Baxxy
- Beiträge: 10850
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2230 Mal
Re: Statusanzeige Display 4x20
Na das sollte doch klar sein. Du trägst doch eine URL im Script ein. Somit gehen die Daten von der RaspberryMatic (vermutlich über Lan-Kabel) zum Router und von dort per WLan an das Display.magnum1795 hat geschrieben: ↑22.06.2020, 20:39Wie werden denn die Daten von der CCU aus gesendet? Geht das per Funk oder über Netzwerk?
Ja dann schau dir doch einfach mal meinen Code und deinen an. Der Unterschied ist doch nicht zu übersehen.magnum1795 hat geschrieben: ↑22.06.2020, 20:39Es kommen keine Fehler mehr, jedoch word das Display aber auch nicht angesprochen
Mein Beispiel:
Code: Alles auswählen
string url = "http://192.168.0.40/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
Code: Alles auswählen
string url = "http://192.168.0.40/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null %u201A"#url#"%u201A");
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 268
- Registriert: 13.05.2020, 17:56
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 23 Mal
Re: Statusanzeige Display 4x20
bin nun paar Schritte weiter.
Habe das Script etwas erweitert und es werden jetzt alle 3 Kanäle angezeigt. Na ja, normalerweise. so sieht mein Script jetzt aus
Allerdings werden häufig nicht alle Zeichen angezeigt (siehe Bild). Scheint irgendwie mit der Datenübertragung zusammen zu hängen, oder? manchmal wird es "Richtig" angezeigt, aber eher selten.
in der api steht folgendes drin
Habe das Script etwas erweitert und es werden jetzt alle 3 Kanäle angezeigt. Na ja, normalerweise. so sieht mein Script jetzt aus
Code: Alles auswählen
string url = "http://192.168.0.40/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string url = "http://192.168.0.40/control?cmd=LCD,2,1,Aussentemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string url = "http://192.168.0.40/control?cmd=LCD,3,1,Wassertemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string url = "http://192.168.0.40/control?cmd=LCD,4,1,Innentemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string temppool = dom.GetObject("BidCos-RF.UNITEMP001:1.TEMPERATURE").Value().ToString(1);
string url = "http://192.168.0.40/control?cmd=LCD,2,14,'"#temppool#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string temppool = dom.GetObject("BidCos-RF.UNITEMP001:2.TEMPERATURE").Value().ToString(1);
string url = "http://192.168.0.40/control?cmd=LCD,3,14,'"#temppool#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
string temppool = dom.GetObject("BidCos-RF.UNITEMP001:3.TEMPERATURE").Value().ToString(1);
string url = "http://192.168.0.40/control?cmd=LCD,4,14,'"#temppool#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
in der api steht folgendes drin
Code: Alles auswählen
<channel name="HB-Pool-Außentemperatur.:1" ise_id="2796" index="1" visible="true" operate="true">
<datapoint name="BidCos-RF.UNITEMP001:1.TEMPERATURE" type="TEMPERATURE" ise_id="2797" value="15.800000" valuetype="4" valueunit="°C" timestamp="1592861159" operations="5"/>
</channel>
<channel name="HB-Pool-Wassertemperatur:2" ise_id="2798" index="2" visible="true" operate="true">
<datapoint name="BidCos-RF.UNITEMP001:2.TEMPERATURE" type="TEMPERATURE" ise_id="2799" value="30.700000" valuetype="4" valueunit="°C" timestamp="1592861159" operations="5"/>
</channel>
<channel name="HB-Pool-Innentemperatur:3" ise_id="2800" index="3" visible="true" operate="true">
<datapoint name="BidCos-RF.UNITEMP001:3.TEMPERATURE" type="TEMPERATURE" ise_id="2801" value="25.000000" valuetype="4" valueunit="°C" timestamp="1592861159" operations="5"/>
- Baxxy
- Beiträge: 10850
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2230 Mal
Re: Statusanzeige Display 4x20
Na das sieht doch schon besser aus!
Programm / Script 1 wird einmalig bei CCU Start ausgeführt. Das Display wird gelöscht und die festen Beschriftungen eingetragen.
Programm / Script 2 kümmert sich dann nur um die veränderlichen Werte.
Trotzdem kommt es ganz selten mal vor das Zeichen fehlen.
Ja, vermutlich kann die RaspberryMatic die Befehle nicht schnell genug absenden. Ich habe das gelöst indem ich 2 Programme/Scripte angelegt habe.magnum1795 hat geschrieben: ↑22.06.2020, 23:39Allerdings werden häufig nicht alle Zeichen angezeigt (siehe Bild). Scheint irgendwie mit der Datenübertragung zusammen zu hängen, oder?
Programm / Script 1 wird einmalig bei CCU Start ausgeführt. Das Display wird gelöscht und die festen Beschriftungen eingetragen.
Programm / Script 2 kümmert sich dann nur um die veränderlichen Werte.
Trotzdem kommt es ganz selten mal vor das Zeichen fehlen.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 268
- Registriert: 13.05.2020, 17:56
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 23 Mal
Re: Statusanzeige Display 4x20
So hätte ich es auch gern. Sprich in der ersten Zeile soll HM Statusanzeige und in der zweiten Pooltemperaturen fest stehen und auch nicht gelöscht werden, bzw.immer mit drin sein. In der dritten und Vierten Zeile dann eben Wassertemperatur und Innentemperatur mit aktuellen Werten. Schön wäre es auch wenn diese immer angezeigt werden oder man zumindest mit einen Butten aufrufen könnte.Baxxy hat geschrieben: ↑22.06.2020, 23:57...Ich habe das gelöst indem ich 2 Programme/Scripte angelegt habe.
Programm / Script 1 wird einmalig bei CCU Start ausgeführt. Das Display wird gelöscht und die festen Beschriftungen eingetragen.
Programm / Script 2 kümmert sich dann nur um die veränderlichen Werte.
Trotzdem kommt es ganz selten mal vor das Zeichen fehlen.
Um das zu realisieren werde ich wohl noch sehr , sehr viel lesen müssen.
Vielleicht kannst mir ja nochmal einen Tipp geben wie man die festen werte einträgt im Script 1. Danke
- Baxxy
- Beiträge: 10850
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2230 Mal
Re: Statusanzeige Display 4x20
Das kann nicht schaden, und man sagt ja... "lesen bildet".magnum1795 hat geschrieben: ↑23.06.2020, 00:13Um das zu realisieren werde ich wohl noch sehr , sehr viel lesen müssen.
Beispiel für das 1. Script was nur einmalig auszuführen ist.
Code: Alles auswählen
!- Displayinhalt löschen
string clear = "http://192.168.0.40/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#clear#"'");
!- Feste Beschriftung Zeile 1 schreiben
string zeile1 = "http://192.168.0.40/control?cmd=LCD,1,1,HM Statusanzeige";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile1#"'");
!- Feste Beschriftung Zeile 2 schreiben
string zeile2 = "http://192.168.0.40/control?cmd=LCD,2,1,Aussentemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile2#"'");
!- Feste Beschriftung Zeile 3 schreiben
string zeile3 = "http://192.168.0.40/control?cmd=LCD,3,1,Wassertemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile3#"'");
!- Feste Beschriftung Zeile 4 schreiben
string zeile4 = "http://192.168.0.40/control?cmd=LCD,4,1,Innentemp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile4#"'");
Code: Alles auswählen
!- Zeile 2 Aussentemperatur schreiben
string atemp = dom.GetObject("BidCos-RF.UNITEMP001:1.TEMPERATURE").Value().ToString(1);
string urlz2 = "http://192.168.0.40/control?cmd=LCD,2,14,'"#atemp#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz2#"'");
!- Zeile 3 Wassertemperatur schreiben
string wtemp = dom.GetObject("BidCos-RF.UNITEMP001:2.TEMPERATURE").Value().ToString(1);
string urlz3 = "http://192.168.0.40/control?cmd=LCD,3,14,'"#wtemp#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz3#"'");
!- Zeile 3 Innentemperatur schreiben
string itemp = dom.GetObject("BidCos-RF.UNITEMP001:3.TEMPERATURE").Value().ToString(1);
string urlz4 = "http://192.168.0.40/control?cmd=LCD,4,14,'"#itemp#"' %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz4#"'");
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 268
- Registriert: 13.05.2020, 17:56
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 23 Mal
Re: Statusanzeige Display 4x20
Ich hätte da mal noch eine Frage. Habe mir nun mehrere Display´s mit 4x20 Zeichen gebaut und die dazu erforderlichen Programme soweit erstellt.
Leider weiß ich aber noch nicht wie man eben die Zeichen hPa und % darstellt. °C ist ja nun klar (%C2%B0C), aber was müsste ich bei vorher genannten denn nun eintragen? Möchte eben Temperatur, Luftdruck und Luftfeuchte gern anzeigen lassen.
Vielen Dank schon mal.
PS: gibt es irgendwo Literatur, Webseiten etc. wo man das nachlesen kann? Habe bisher nichts passendes gefunden.
PSS: hat sich erledigt. Habe es hinbekommen.
Für alle die es eventuell interessiert, das steht nun bei mir im Script. Natürlich müsst ihr es noch anpassen bei Euch (IP Nummer, Datenpunte etc.)
Leider weiß ich aber noch nicht wie man eben die Zeichen hPa und % darstellt. °C ist ja nun klar (%C2%B0C), aber was müsste ich bei vorher genannten denn nun eintragen? Möchte eben Temperatur, Luftdruck und Luftfeuchte gern anzeigen lassen.
Vielen Dank schon mal.
PS: gibt es irgendwo Literatur, Webseiten etc. wo man das nachlesen kann? Habe bisher nichts passendes gefunden.
PSS: hat sich erledigt. Habe es hinbekommen.
Für alle die es eventuell interessiert, das steht nun bei mir im Script. Natürlich müsst ihr es noch anpassen bei Euch (IP Nummer, Datenpunte etc.)
Code: Alles auswählen
!- Zeile 1 HK Temp. schreiben
string zeile1 = "http://192.168.0.14/control?cmd=LCD,1,1,HK Temp.";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile1#"'");
string hktemp = dom.GetObject("BidCos-RF.UNISENS003:2.TEMPERATURE").Value().ToString(1);
string urlz1 = "http://192.168.0.14/control?cmd=LCD,1,13,"#hktemp#" %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz1#"'");
!- Zeile 2 Aussentemperatur schreiben
string zeile2 = "http://192.168.0.14/control?cmd=LCD,2,1,Temperatur";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile2#"'");
string atemp = dom.GetObject("BidCos-RF.UNISENS003:1.TEMPERATURE").Value().ToString(1);
string urlz2 = "http://192.168.0.14/control?cmd=LCD,2,13,"#atemp#" %C2%B0C";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz2#"'");
!- Zeile 3 Luftdruck schreiben
string zeile3 = "http://192.168.0.14/control?cmd=LCD,3,1,Luftdruck";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile3#"'");
string wtemp = dom.GetObject("BidCos-RF.UNISENS003:1.AIR_PRESSURE").Value().ToString(0);
string urlz3 = "http://192.168.0.14/control?cmd=LCD,3,13,"#wtemp#" hPa";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz3#"'");
!- Zeile 3 Luftfeuchte schreiben
string zeile4 = "http://192.168.0.14/control?cmd=LCD,4,1,Luftfeuchte";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#zeile4#"'");
string itemp = dom.GetObject("BidCos-RF.UNISENS003:1.HUMIDITY").Value().ToString(1);
string urlz4 = "http://192.168.0.14/control?cmd=LCD,4,13,"#itemp#" %";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#urlz4#"'");