SV Zeichenkette und Skript Hilfe

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von MichaelN » 29.07.2022, 07:00

Du hast leider die implizite Frage nach dem Typ der Systemvariablen nicht beantwortet.

Wenn Zeichenkette, dann ToString komplett weg lassen. Es ist ja schon string.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Tyfys
Beiträge: 551
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Tyfys » 29.07.2022, 07:59

Der Wert "245.06 kWh, 75.97 Euro" kann ja nur in einem String enthalten sein,
wenn er mit

Code: Alles auswählen

string var1 = dom.GetObject("TR aktueller Monat").Value().ToString(2);
ausgelesen wird. Das ToString(2) ändert an dem Inhalt nichts und ist überflüssig.
Wäre er in einer Werteliste, käme bei dieser Abfrage nur der Index heraus. ( 0 bis n).

bei Übergabe per HTTP werden Kommata als Trennzeichen zwischen Parametern benutzt.
Ich kann mir vorstellen, dass das in diesem Falle auch der Grund ist.

Probiere mal das Komma durch z.B. Gedankenstrich zu ersetzen (Replace) oder
den String durch Umkodieren (UriEncode) dann in einer URL verwenden zu können. :

Code: Alles auswählen

string var1 = "245.06 kWh, 75.97 Euro";
WriteLine(var1);
WriteLine(var1.Type());
WriteLine(var1.ToString(2));

string var1_Rpl = var1.Replace("," , " -");
WriteLine(var1_Rpl);

string var1_Uri = var1.UriEncode();
WriteLine(var1_Uri);
Gruß
Harry

Alexxx2005
Beiträge: 252
Registriert: 17.12.2014, 18:56
Hat sich bedankt: 19 Mal
Danksagung erhalten: 3 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Alexxx2005 » 29.07.2022, 23:23

Hallo,

also wenn ich ToString weglasse ändert es leider nichts.

mit dem Replace erhalte ich den Wert "245.06" und mit dem
UriEncode den Euro Wert also "75.97 Euro"

das Merkwürdige über WriteLine erhalte ich es so wie Harry
es geschrieben hat einmal mit - und einmal mit ,

Code: Alles auswählen

245.06 kWh, 75.97 Euro
string
245.06 kWh, 75.97 Euro
245.06 kWh - 75.97 Euro
245%2E06%20kWh%2C%2075%2E97%20Euro
Naja egal hatte gedacht das ich mir es auf dem Display anzeigen
kann aber hab schon gesehen ist alles nicht so einfach.

Trotzdem Danke an alle.

Grüße Alex

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

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Baxxy » 30.07.2022, 00:27

Das der String (egal wie konvertiert) länger als die 20 möglichen Zeichen einer Zeile des LCD2004 ist, ist aber schon aufgefallen, oder? :wink:
Wie sieht's denn aus wenn einfach mal der gesamte String auf max 20 Zeichen reduziert wird? "Euro" weglassen z.B.

Tyfys
Beiträge: 551
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Tyfys » 30.07.2022, 10:11

Baxxy hat geschrieben:
30.07.2022, 00:27
wenn einfach mal der gesamte String auf max 20 Zeichen reduziert wird
Wenn es da ein Limit gibt, muss man das berücksichtigen.


Das ist aber auch ein eigenartiges Verhalten:
Alexxx2005 hat geschrieben:
29.07.2022, 23:23
mit dem Replace erhalte ich den Wert "245.06" und mit dem
UriEncode den Euro Wert also "75.97 Euro"
Ich hätte dann ein stumpfes Abschneiden - vorne oder hinten - erwartet.

Evtl. einfach mal mit "123456789012345678901234567890" testen was passiert.
Gruß
Harry

Alexxx2005
Beiträge: 252
Registriert: 17.12.2014, 18:56
Hat sich bedankt: 19 Mal
Danksagung erhalten: 3 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Alexxx2005 » 31.07.2022, 12:47

Also dasmit den 20 Zeichen ist korrekt allerdings fängt er dann wieder
in der nächsten Zeile an, weggelassen wird nichts.

Problem war jetzt bei

Code: Alles auswählen

("wget -q -O /dev/null '"#url#"'");


das sollte

Code: Alles auswählen

("wget -q -O /dev/null "#url);
heißen und dann noch den Replace von Komma nach Minus
somit ergibt sich folgendes Skript :

Code: Alles auswählen

string url = "http://192.168.86.51/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801003:5.CMD_EXEC").State("wget -q -O /dev/null "#url);
string var1 = dom.GetObject("TR Verbrauch heute").Value();
string var2 = var1.Replace("," , "");
string url = "http://192.168.86.51/control?cmd=LCD,2,1,'"#var2#"' ";
dom.GetObject("CUxD.CUX2801003:5.CMD_EXEC").State("wget -q -O /dev/null "#url);
Was jetzt noch ganz Toll wäre das Euro zu € "replacen" weß jemand hier die
aktuelle UTF8 Codierung , habe mit

Code: Alles auswählen

%E2 %82 %AC
probiert aber hier kommt nur ein "ß"

Grüße Alex


Alexxx2005
Beiträge: 252
Registriert: 17.12.2014, 18:56
Hat sich bedankt: 19 Mal
Danksagung erhalten: 3 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Alexxx2005 » 31.07.2022, 21:54

Jahaben sie nicht, ich habe es nun auf EUR begrenzt nun
komme ich mit den Zeichensätzen hin.

Bedanke mich nochmals an alle die mir geholfen haben,
Danke auch an Harry für seine tollen Beispiele so konnte
ich das ganze verstehen und mein Stromanzeige Display
verwirklichen, jetzt muss nur noch ein Gehäuse gedruckt
werden , dann ist es komplett.

Grüße Alex

Benutzeravatar
Black
Beiträge: 5482
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Black » 31.07.2022, 22:32

Die LCDs haben doch eine ANzahl von Zeichen im Ram, die wo du die Pixels selber setzen kannst. Müssten die Asci Codes 0-7 sein.
deren Pixelmuster kannst du ja selber laden.

Link zum Datenblatt eines 20x4 Displays

dann musst du nur das Euro Zeichen gegen den char 0-7 substituieren.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: SV Zeichenkette und Skript Hilfe

Beitrag von jp112sdl » 01.08.2022, 06:31

Die
Black hat geschrieben:
31.07.2022, 22:32
Pixelmuster
lassen sich sogar bequem online erzeugen: https://omerk.github.io/lcdchargen/
Ist für den HD44780.
Black hat geschrieben:
31.07.2022, 22:32
Link zum Datenblatt eines 20x4 Displays
Sollte aber kompatibel auch zum KS0073 sein.
Dateianhänge
eur.png
eur.png (15.04 KiB) 310 mal betrachtet

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“