Script Fehler

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

ralle12345
Beiträge: 4
Registriert: 05.07.2013, 13:29

Script Fehler

Beitrag von ralle12345 » 05.07.2013, 14:52

Hallo zusammen,

ich bin seit kurzem Besitzer einer CCU2 und versuche, Werte von CUx-Daemon Geräten über einen curl Aufruf an ein anderes System zu senden. Dazu habe ich folgendes Programm erstellt und an das Gerät geklebt:

Bedingung:
[*] Kanalzustand: CUX0100002:1
[*] bei Temperatur im Wertebereich größer als -40.00 °C
[*] bei Aktualisierung auslösen

Der Script code sieht wie folgt aus:

Code: Alles auswählen

string stdout;
string stderr;
var source = dom.GetObject("$src$");
var log = dom.GetObject("LOG");
if (source)
{
    var value = source.Value().ToString();
   log.Variable(value);
    var item = "t" # source.ID().ToString();
   log.Variable(item);
} 
else 
{
  var sens = dom.GetObject("CUX0100002:1");
  var curTemp = sens.DPByHssDP("TEMPERATURE");
  var value = curTemp.Value(); !.ToString();
  WriteLine(value);
   log.Variable(value);
  var item = "tCUX0100002";
  WriteLine(item);
   log.Variable(item);
}
var cmd = "LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -i -H \"Content-Type: text/plain\" -X PUT -d \"" # value # "\" http://192.168.254.9:8080/rest/items/" # item # "/state";
WriteLine(cmd);
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(cmd);
Jedes mal, wenn ich im Log eine Aktualisierung des Datenpunktes sehe, kommt eine Fehlermeldung, mit der ich jedoch nichts anfangen kann:

Code: Alles auswählen

Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.HUMIDITY=51)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.HUMIDITYF=50.9)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.DEW_POINT=17.0)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.ABS_HUMIDITY=13.9)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.TEMPERATURE=28.1)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.HUM_MIN_24H=50.8)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.HUM_MAX_24H=62.3)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.TEMP_MIN_24H=27.0)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.TEMP_MAX_24H=28.4)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:1.MISS_24H=192)
Jul  5 14:31:49 homematic-ccu2 daemon.debug cuxd[305]: DBG: event_put(CUX0100002:0.RSSI_PEER=-91)
Jul  5 14:31:49 homematic-ccu2 local0.err ReGaHss: Error: Failed to close mutex 'EspClearCodeCache'! [../Platform/Common/iseSysLx.cpp (123)]
Jul  5 14:31:49 homematic-ccu2 local0.err ReGaHss: Error: Failed to close mutex 'mtxStaticIseEsp'! [../Platform/Common/iseSysLx.cpp (123)]
Kann mir jemand sagen, woher der Fehler kommt? Stimmt vielleicht was am Script nicht? Gibt es vielleicht einen einfacheren Weg, um Daten von CUx-Daemon Geräten in openHAB zu bekommen?

Ach ja: Aus einem mir ebenso unbekannten Grund funktioniert das Logging über das Systemprotokoll nicht, ich habe eine Systemvariable LOG angelegt und auf Protokollieren geschaltet, jedoch landet dort nichts. Auch nicht, wenn ich statt .Variable() .State() benutze, wie ich in einem Posting gefunden habe.

Vielen Dank für Eure Hilfe!

Grüße,
Ralph

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Script Fehler

Beitrag von anli » 05.07.2013, 16:14

Nimm bitte mal den in die Zeile integrierten Kommentar ( !.ToString(); ) raus.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

ralle12345
Beiträge: 4
Registriert: 05.07.2013, 13:29

Re: Script Fehler

Beitrag von ralle12345 » 05.07.2013, 16:29

So, der Kommentar ist weg, die Fehlermeldung auch und das Script funktioniert wie es soll.

Danke!

Könntest Du mir auch noch sagen, warum das mit dem Logging nicht funktioniert? Das brauche ich zwar aktuell erst mal nicht mehr zum Debugging, aber aus akademischem Interesse (für's nächste Script) wüßte ich das halt schon gern...

Grüße,
Ralph

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Script Fehler

Beitrag von anli » 05.07.2013, 18:45

Dazu kann ich leider nichts sagen - ich benutze zum Loggen mittlerweile nach CCU-Historian den CUxD.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Script Fehler

Beitrag von anli » 05.07.2013, 23:07

Ergänzend hierzu noch einmal: Ich habe das mit einer Systemvariablen auf der CCU2 probiert (auf protokolliert gesetzt). Die Veränderungen über .State(neuerWert) werden im Protokoll angezeigt. Die Variable war keinem Kanal zugeordnet.
Dateianhänge
protokoll.png
protokoll.png (11.21 KiB) 2866 mal betrachtet
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

ralle12345
Beiträge: 4
Registriert: 05.07.2013, 13:29

Re: Script Fehler

Beitrag von ralle12345 » 06.07.2013, 13:41

Vielen Dank für's ausprobieren, anli. Ich bin mittlerweile durch das Stöbern im Forum selbt auf den logger gestoßen und werde den mal austesten. Das scheint mir die bessere Variante zum debuggen zu sein.

Ich habe noch ein letztes Problem, an dem mein Script scheitert:

als $src$.Name() bekomme ih ja ein CUxD.CUX0100002:1.TEMPERATURE, damit hat allerdings meine Ziel-Applikation ein Problem. Gibt es irgendeine Funktion, die mir aus einem Datenpunkt wie oben nur das CUX0100002 rauszieht. Oder wenn es so was nicht gibt, kann man irgendwie "." und ":" durch "_" ersetzen?

EDIT: Bin schon selbst drauf gekommen. mit einem beherzten "$src$.Name().ToString().Substr(5,10);" bekomme ich genau das was ich haben möchte.

Grüße,
Ralph

mario@
Beiträge: 63
Registriert: 07.05.2015, 14:08
Wohnort: Am Harz

Re: Script Fehler

Beitrag von mario@ » 24.06.2018, 18:46

Hallo zusammen,

ich hänge mich hier mal dran in der Hoffnung es kann mir jmd weiterhelfen.
Seit Tage versuche ich heraus zu finden woher die
Fehler im Log kommen. Ich habe auch schon alle! Programme deaktiviert ( auch 2 system interne), aber die Fehler kommen periodisch
weiter. Ich weiss nicht wie ich dem Script noch auf die Spur kommen könnte. Ich vermute, es handelt sich vlt um eine Programm-Leiche. Ich hatte mal ein Batterie-leer Script, da war ja ein Counter drin.

Danke schon mal :D
CCU2 FW 2.31.25
CUX FW 2.0.0.
XML-API FW 1.10
EMail FW 1.6.8




Code: Alles auswählen

Jun 24 12:18:07 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 718 near ^ Write('","Name":"' # oSysvar.Name());      if (oSysvar.ValueType() == 20) {    ^M  [iseESP.cpp:1111]
Jun 24 12:18:07 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError=  Write('","Name":"' # oSysvar.Name());      if (oSysvar.ValueType() == 20) {         var value = oSysvar.Value();         var valueLength = value.Length();         var currentIndex = 0;      
Jun 24 12:18:07 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 718 near ^ Write('","Name":"' # oSysvar.Name());      if (oSysvar.ValueType() == 20) {    ^M  [iseESP.cpp:1111]
Jun 24 12:18:07 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError=  Write('","Name":"' # oSysvar.Name());      if (oSysvar.ValueType() == 20) {         var value = oSysvar.Value();         var valueLength = value.Length();         var currentIndex = 0;      
Jun 24 12:18:21 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string itemID;string text = "";integer counter = 0;  foreach(itemID, root.Devices().EnumIDs()) {  var device = dom.GetObject(itemID);  var interface = dom.GetObject(device.Interface());  str
Jun 24 12:18:27 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 718 near ^;  if ( (channel.State() == true) && (channel.Value() == true) ){  if ( counter ^M  [iseESP.cpp:1111]
Jun 24 12:18:27 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError= ;  if ( (channel.State() == true) && (channel.Value() == true) ){  if ( counter == 0 )  { text = itemID; } else { text = text # "^M " # itemID; }  counter = counter + 1;  }}  WriteLine(counter
Jun 24 18:15:11 homematic-ccu2 local1.info netatmokue.tcl: Inside humidity is 52

Xel66
Beiträge: 14086
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 581 Mal
Danksagung erhalten: 1492 Mal

Re: Script Fehler

Beitrag von Xel66 » 24.06.2018, 20:05

Die verwendeten Namen verweisen m.E. auf iobroker. Suche mal in dieser Richtung.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

mario@
Beiträge: 63
Registriert: 07.05.2015, 14:08
Wohnort: Am Harz

Re: Script Fehler

Beitrag von mario@ » 24.06.2018, 20:23

Hallo Xel66,

danke für den Tip aber ich nutze kein iobroker oder homeputer oder ähnliches.

Xel66
Beiträge: 14086
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 581 Mal
Danksagung erhalten: 1492 Mal

Re: Script Fehler

Beitrag von Xel66 » 24.06.2018, 20:36

mario@ hat geschrieben:...kein iobroker oder homeputer oder ähnliches.
FHEM?

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

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