Statusanzeige Display 4x20

Moderator: Co-Administratoren

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Statusanzeige Display 4x20

Beitrag von magnum1795 » 22.06.2020, 20:04

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
Dateianhänge
fehler 6.jpg
fehler 6.jpg (14.88 KiB) 3076 mal betrachtet
fehler 5.jpg
fehler 4.jpg
fehler 3.jpg
fehler 2.jpg
fehler 1.jpg
Zuletzt geändert von magnum1795 am 22.06.2020, 20:20, insgesamt 1-mal geändert.

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 22.06.2020, 20:15

magnum1795 hat geschrieben:
22.06.2020, 20:04
Kann mir bitte jemand auf die Sprünge helfen und erklären was ich falsch eingebe?
Naja, dein Script sieht schon etwas "verquer" aus. Schlecht kopiert oder noch schlechter abgetippt. :wink:
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#"'");
sollte es tun.

Grüße
Baxxy

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Re: Statusanzeige Display 4x20

Beitrag von magnum1795 » 22.06.2020, 20:39

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.
Dateianhänge
fehler 7.jpg

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 22.06.2020, 21:38

magnum1795 hat geschrieben:
22.06.2020, 20:39
Kann es beim Kopieren aus Note++ heraus zu solchen Fehlern kommen
Wen du Notepad++ meinst eher nicht.
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. :roll:

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 22.06.2020, 22:00

magnum1795 hat geschrieben:
22.06.2020, 20:39
Wie werden denn die Daten von der CCU aus gesendet? Geht das per Funk oder über Netzwerk?
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:39
Es kommen keine Fehler mehr, jedoch word das Display aber auch nicht angesprochen
Ja dann schau dir doch einfach mal meinen Code und deinen an. Der Unterschied ist doch nicht zu übersehen.
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#"'");
Dein Beispiel (abgetippt weil du es nicht schaffst den Code in Code-Tags zu posten) :evil:

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");

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Re: Statusanzeige Display 4x20

Beitrag von magnum1795 » 22.06.2020, 23:39

bin nun paar Schritte weiter. :lol:

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#"'");

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

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"/>
Dateianhänge
fehler 8.jpg

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 22.06.2020, 23:57

Na das sieht doch schon besser aus!
magnum1795 hat geschrieben:
22.06.2020, 23:39
Allerdings werden häufig nicht alle Zeichen angezeigt (siehe Bild). Scheint irgendwie mit der Datenübertragung zusammen zu hängen, oder?
Ja, vermutlich kann die RaspberryMatic die Befehle nicht schnell genug absenden. 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.

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Re: Statusanzeige Display 4x20

Beitrag von magnum1795 » 23.06.2020, 00:13

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.
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.

Um das zu realisieren werde ich wohl noch sehr , sehr viel lesen müssen. :oops:

Vielleicht kannst mir ja nochmal einen Tipp geben wie man die festen werte einträgt im Script 1. Danke

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 23.06.2020, 00:37

magnum1795 hat geschrieben:
23.06.2020, 00:13
Um das zu realisieren werde ich wohl noch sehr , sehr viel lesen müssen.
Das kann nicht schaden, und man sagt ja... "lesen bildet". :wink:

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#"'");
Beispiel für das 2. Script was über ein WebUI-Programm z.B. bei Aktualisierung einer deiner 3 Sensoren gestartet wird.

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#"'");

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Re: Statusanzeige Display 4x20

Beitrag von magnum1795 » 11.08.2020, 16:31

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. :lol:

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#"'");
Dateianhänge
24.jpg
22.jpg

Antworten

Zurück zu „Sonstige Steuerungen und Visualisierungen“