SV Zeichenkette und Skript Hilfe

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Visu
Beiträge: 507
Registriert: 04.12.2016, 23:30
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Visu » 03.01.2019, 01:58

Guten Morgen,
ich hätte dazu eine weitere Frage, wie kann ich jetzt eine Minus-Temp. darstellen/abfragen?
Mit diesen Skript bekomme ich zwar die Temp. in eine SV Typ. Zahl geschrieben, aber eigentlich ist die Temp. gerade im Minus.

Code: Alles auswählen

var url = "192.168.2.51:51/c_index.htm?C=8D200C01";
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    var s1tmp =srueck.StrValueByIndex(";",1).ToString();
    var saus= s1tmp.Substr(0, s1tmp.Length()-5);
    integer ikomma  = saus.Find(",");
    string saus1 = saus.Substr(0, ikomma);
    string saus2 = saus1 + "." + saus.Substr(ikomma + 1, 5);
    var zaus = saus2.ToFloat();
dom.GetObject("SV_UVR_E12_Außentemp").State(zaus);
124.JPG
124.JPG (19.42 KiB) 1475 mal betrachtet

eigentlich ist es -3.30 °C
123.JPG
123.JPG (15.53 KiB) 1475 mal betrachtet
G.V.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von alchy » 03.01.2019, 08:13

Das kommt davon, wenn man quer durchs Forum irgendwelche Sachen kopiert statt dort zu fragen wo es hingehört.
Ich muss mal wieder auf Löschaktion gehen.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von NickHM » 03.01.2019, 09:02

Hallo

sieh Dir die Rohdaten von der WEbSeite an.
Dann sieh Dir an, was in dem Script passiert. Ich würde sagen, da wird mit einer festen Länge ein String zerschnitten.
Wenn Du verstanden hast, wie das Script funktioniert, erklärt sich der Fehler vermutlich automatisch.

Visu
Beiträge: 507
Registriert: 04.12.2016, 23:30
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Visu » 03.01.2019, 09:38

alchy hat geschrieben:
03.01.2019, 08:13
Das kommt davon, wenn man quer durchs Forum irgendwelche Sachen kopiert statt dort zu fragen wo es hingehört.
Ich muss mal wieder auf Löschaktion gehen.

Alchy
Guten Morgen.
Sorry, ich habe schon deine Beiträge dazu gelesen viewtopic.php?f=19&t=26310&hilit=UVR. Auch habe ich deine, für mich von dir angepasste Skripte bis dato verwenden

Code: Alles auswählen

! UVR 1611 - Temperaturdaten aus Bl-Net auslesen by Alchy
    var url = "192.168.2.51:51/c_index.htm?C=8D200C01";
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    ! Die komischen Tabs &nbsp loswerden
    if (rueckgabe.Find("&nbsp;") > -1)
    {
      rueckgabe = rueckgabe.Substr(6, rueckgabe.Length()-6);
      if (rueckgabe.Find("&nbsp;") > -1)
    {
      rueckgabe = rueckgabe.Substr(6, rueckgabe.Length()-6);
    };
    };
    ! Die Maßeinheit (nur °C) loswerden
    rueckgabe = rueckgabe.Substr(0, rueckgabe.Length()-8);
    ! Das Leerzeichen bei (einstelligen zweistellig hatte ich noch nicht) negativen Zahlen loswerden
    if (rueckgabe.Find(" ") > -1)
    {
      rueckgabe = "-" + rueckgabe.Substr(2, rueckgabe.Length()-2);
    }
    !---- Komma in der Temperatur durch ein Punkt ersetzen um realen Wert in Zahl wandeln zu koennen-----------------
    integer ikomma  = rueckgabe.Find(",");
    string saus1 = rueckgabe.Substr(0, ikomma);
    string saus2 = saus1 + "." + rueckgabe.Substr(ikomma + 1, 5);
    var zaus = saus2.ToFloat();

    dom.GetObject("Test2").State(zaus);
leider bekomme ich hier keine Temperaturen mehr zurück
8.JPG
8.JPG (18.96 KiB) 1432 mal betrachtet
und ich wollte jetzt nicht extra einen neuen Beitrag öffnen, sondern in meinem alten weiterschreiben...

G.V.

Visu
Beiträge: 507
Registriert: 04.12.2016, 23:30
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Visu » 03.01.2019, 09:45

NickHM hat geschrieben:
03.01.2019, 09:02
Hallo

sieh Dir die Rohdaten von der WEbSeite an.
Dann sieh Dir an, was in dem Script passiert. Ich würde sagen, da wird mit einer festen Länge ein String zerschnitten.
Wenn Du verstanden hast, wie das Script funktioniert, erklärt sich der Fehler vermutlich automatisch.
Hallo,
und genau darin liegt das Problem, ich raffe die Skripte einfach nicht und darum bin ich echt froh, dass es Menschen gibt, die das drauf haben und jede Menge gute Beispiele/Skripte erarbeiten und allen zur Verfügung stellen und bei Problemen Hilfestellung geben.

Die Ausgabe über Webseite: - 4,3 °C
Rohdaten: -&nbsp;4,3 °C

Ich habe auch alte, vorher funktionierende Skripte getestet, leider funktionieren die irgendwie nicht mehr, siehe Antwort an Alchy.
Einige Beispiele führen zu Ergebnissen, andere leider nicht.



G.V.

Visu
Beiträge: 507
Registriert: 04.12.2016, 23:30
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Visu » 03.01.2019, 09:51

Meine Versuche:

Liefert ein Ergebnis:
1.JPG
Das gleiche Skript mit SV:
3.JPG
2.JPG
2.JPG (18.84 KiB) 1428 mal betrachtet
liefert kein Ergebnis:
4.JPG
4.JPG (18.87 KiB) 1428 mal betrachtet
G.V.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von alchy » 03.01.2019, 12:03

Visu hat geschrieben:
03.01.2019, 09:51
und ich wollte jetzt nicht extra einen neuen Beitrag öffnen, sondern in meinem alten weiterschreiben...
Klar doch, wenn du keine Hilfe brauchst. :wink:
Du eröffnest einen Thread Hilfe für Ofenüberwachung
verwendest ein völlig überholtes Script von mir aus einem ganz anderen Thread, welches nicht das macht was du willst und zu dem du Fragen hast usw.

Dann eröffnest du einen weiteren Thread, weil dir da wohl nicht so richtig geholfen werden konnte/wollte SV Zeichenkette und Skript Hilfe
verwendest ein völlig überholtes Script von mir aus einem ganz anderen Thread, welches nicht das macht was du willst und zu dem du Fragen hast usw.

Was haben beide Threads gemeinsam?
Du verwendest ein völlig überholtes Script von mir, welches nicht das macht was du gerne willst :roll:
Es spielt doch überhaupt keine Geige ob du mit der Ausgabe des Scriptes eine Ofenüberwachung oder einen Temperaturvergleich mit der Raumstation durchführen oder sonst was realisieren willst.
Das Script macht nicht das was es soll und dann gehören die Fragen dort hin wo ich definitiv bisher immer mitgelesen und geholfen habe.
Ansonsten ist es eben Zufall ob ich drüber stolpere usw.

Um helfen zu können, hätte ich zumindest gerne die JSON Ausgabe des Script Executers. Das habe ich dir schon im Originalthread zum Thema mitgeteilt.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Visu
Beiträge: 507
Registriert: 04.12.2016, 23:30
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von Visu » 03.01.2019, 22:44

Hallo,
das "überholte" Skript lief bis zum Schluss. leider kann ich nicht erkennen, ob ein Skript überholt/alt ist. In den von dir verlinkten Thread "UVR 1611 - Daten aus Bl-Net auslesen" herrscht leider ein wildes Durcheinander, laut Titel geht es eigentlich um das Gerät "BL-Net", zwischendurch fängt aber jemand mit dem CGI Teil an, das sind meiner Meinung nach 2 paar verschiedene Schuhe, weil zwei völlig unterschiedliche Geräte, die zwar irgendwo das gleiche machen, aber mit unterschiedlicheren Herangehensweisen. Und die beiden Sachen springen dort hin und her.

Sorry, wenn ich mit meinem Anliegen hier im falschen Thread gelanden bin :( , war nicht böse gemeint.

Eiegntlich wollte ich dir antworten "SON Ausgabe des Script Executers" leider ist die Test-CCU2 nach dem installieren des AddOn komplett abgeschmiert. Auf der Test CCU2 sind keine Geräte angelernt, nur ein paar Programme mit Skripten zum Abfragen der/des UVR/BL-Net. Muss die CCU2 neu aufsetzten :(

Wärst du trotzdem so nett und würdest dir das folgende Skript mal anschauen und mir weiterhelfen, warum das Skript keine negativen Temperaturwerte anzeigt/in eine SV schreibt? denn ansich funktioniert das skript ja....



die Abfrage über Webbroser "192.168.2.51:51/c_index.htm?C=8D200C01" liefert: - 1,7 °C
der Quelltext sieht so aus: -&nbsp;1,6 &deg;C
(Quelltext einer + Temperatur sieht so aus: &nbsp;56,8 &deg;C
die SV ist eine Typ: Zahl

G.V.
Zuletzt geändert von alchy am 04.01.2019, 12:31, insgesamt 1-mal geändert.
Grund: Scriptcopy gelöscht

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von NickHM » 04.01.2019, 08:16

Hallo

Du siehst Dir am besten als erstes die Script Doku an und verstehst was die folgenden Zeilen machen

Code: Alles auswählen

    var s1tmp =srueck.StrValueByIndex(";",1).ToString();
    var saus= s1tmp.Substr(0, s1tmp.Length()-5);
Aus der Kenntnis anderer Programmiersprachen würde ich mal raten ... Trennung an der Stelle, an der ein ";" vor kommt und dann Abschneiden des Strings ab einer bestimmten Stelle bei 5 Zeichen

Bei einer positiven Temperatur wird also die Zahl aus dem String rausoperiert. Da ist das Vorzeichen egal.
Bei einer negativen Temperatur fehlt dann das Vorzeichen.

Das ist aber nur meine Interpretation ohne Kenntnisse der CCU Script Sprache. Und ich werde mich da jetzt auch nicht weiter einarbeiten.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: SV Zeichenkette und Skript Hilfe

Beitrag von alchy » 04.01.2019, 12:30

NickHM hat geschrieben:
04.01.2019, 08:16
Bei einer positiven Temperatur wird also die Zahl aus dem String rausoperiert. Da ist das Vorzeichen egal.
Bei einer negativen Temperatur fehlt dann das Vorzeichen.
Heutzutage kann man einiges anders machen, da es andere Funktionen gibt wie damals. :oops:
Schlußendlich steckt der Teufel im Detail wie auch schon im >im originalthread< zu lesen war. Da es bei den UVR Abfragen zig unterschiedliche Versionen gibt, ich nicht eine einzige davon selber besitze, wollte ich mich nach der vielen zeit die ich deshalb schon investiert hatte eigentlich nicht mehr um die Anfragen dazu kümmern. Erst Recht nicht, wenn ich die Infos nicht bekomme. :roll:
Ich gebe Visu durchaus Recht, das der Thread dort unübersichtlich ist, aber ich lese nun mal nicht mehr immer alle Threads. Die wo ich aktiv war, beobachte ich aber nach wie vor.
Visu hat geschrieben:
03.01.2019, 22:44

Eiegntlich wollte ich dir antworten "SON Ausgabe des Script Executers" leider ist die Test-CCU2 nach dem installieren des AddOn komplett abgeschmiert. Auf der Test CCU2 sind keine Geräte angelernt, nur ein paar Programme mit Skripten zum Abfragen der/des UVR/BL-Net. Muss die CCU2 neu aufsetzten :(
Na dann wende dich an den Entwicker des Addon. :wink:
Das Addon sollte überall (bei mir macht er es bisher auf allen verwendeten CCU mittlerweile auf der CCU3) funktionieren und stört überhaupt nicht, da es nur per Aufruf läuft.
Mir ist die JSON Ausgabe immer noch am Liebsten, da ich dort am ehesten sehe was los ist. Writeausgaben werden durch die Rega immer verfälscht.
Andere Editoren wie der CodeEditor von BadenPower wären auch schön, nur stehen die eben nicht allen zur Verfügung

Alchy

Hier der blinde Versuch dir zu helfen:

Code: Alles auswählen

! UVR 1611 - Temperaturdaten aus Bl-Net Knoten auslesen...
! NEUanfang (c) by Alchy
string IP ="192.168.2.51:51";
string KNOTEN = "8D200C01"; !" abzufragende Knotenpunkte mit \t getrennt
!++++++++++++ BITTE AB HIER NICHTS MEHR AENDERN ++++++++++
string srueck;string index;string name;string slist ="";integer count = 0;real output;
foreach (index, KNOTEN) {
var url = "http://"#IP#"/c_index.htm?C="#index;
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
count = count+1;
WriteLine("Durchlauf: " #count);
if(!srueck ==""){
WriteLine("\tKnoten: "#index#"\n\tsrueck: "#srueck);
output = srueck.Replace("&nbsp;", "").Replace("&deg;C", "").Replace(",", ".").ToFloat();
WriteLine("\toutput: "#output);
}else{WriteLine("Abfrage fehlerhaft");quit;}
}WriteLine("---- Scriptende ----");
Ausgaben möglichst bei negativen wie auch positiven Werten testen/posten.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

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