Scriptfrage

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

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: Scriptfrage

Beitrag von anli » 21.09.2012, 12:58

Probier es mal, indem Du das Skript änderst:

Code: Alles auswählen

var myAssembly = dom.GetObject("Logging");
    string itemID;
    string out;
    string err;
    string Raum;
    string Raum1 = "";
    string Temperatur;
    string Temperatur1="";
    integer StellePunkt = 0;
    string Humidity;
    string loggingtext = "";
    string vDatum  = system.Date("%Y-%m-%d %H:%M").ToString();
    var Luftdruck = dom.GetObject("Wetter-Luftdruck").Value();
    var Taupunkt = dom.GetObject("Wetter-Taupunkt").Value();

    foreach(itemID, myAssembly.EnumUsedIDs())
    {
    var item = dom.GetObject(itemID);
    var device = dom.GetObject(item.Device());
    var interface = dom.GetObject(item.Interface());

    string interface_name = interface.Name();
    string device_address = device.Address();

    device_address = device_address.StrValueByIndex(":", 0);

    string channel_name = interface_name # "." # device_address # ":1.TEMPERATURE";
    Temperatur =  (dom.GetObject(channel_name).Value()).ToString();

    !---- Punkt im der Temperatur durch ein Komma ersetzen -----------------
    StellePunkt  = Temperatur.Find(".");
    Temperatur1 = Temperatur.Substr(0, StellePunkt);
    Temperatur1 = Temperatur1 + "." + Temperatur.Substr(StellePunkt + 1, 10);

    string channel_name = interface_name # "." # device_address # ":1.HUMIDITY";
    Humidity = (dom.GetObject(channel_name).Value()).ToString();

    Raum = item.Name();
    Raum1 = Raum.Substr(0, Raum.Length() );
loggingtext = loggingtext  + Raum1 + "," + vDatum + "," + Temperatur1 + "," + Humidity + "," +  Luftdruck + "," + Taupunkt + "\n";
    }
   loggingtext = loggingtext.Substr(0, loggingtext.Length() -1);
    system.Exec("tclsh /etc/config/writefile.tcl '" + loggingtext + "'" ,&out, &err);
    
    ! logfile.csv per FTP uploaden
   system.Exec("sh /home/logs/upload.sh ", &stdout, &stderr);
Ich habe die System.Exec-Zeile geändert. Was mich ebenfalls sehr wundert, ist, dass Du Strings mit + zusammenfügst - in HMScript ist das Zeichen für concatenation die Raute (#). Es müsste also wie bei

Code: Alles auswählen

string channel_name = interface_name # "." # device_address # ":1.HUMIDITY";
zum Beispiel

Code: Alles auswählen

loggingtext = loggingtext  # Raum1 # "," # vDatum # "," # Temperatur1 # "," # Humidity # "," #  Luftdruck # "," # Taupunkt # "\n";
heißen (ist auch in den Zeilen darüber oder darunter

Code: Alles auswählen

system.Exec("tclsh /etc/config/writefile.tcl '" # loggingtext # "'" ,&out, &err);
so).
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

Pezi737
Beiträge: 43
Registriert: 03.08.2012, 17:44
Wohnort: Frankfurt

Re: Scriptfrage

Beitrag von Pezi737 » 21.09.2012, 13:44

VIELEN HERZLICHEN DANK!!!! :D :D

Mit Tausch des "+" in ein "#" hat alles geklappt! Sehr cool!
Ich hab das ursprüngliche Script wie gesagt hier aus dem Forum. Nur ein wenig abgeändert um weitere Variablen zu loggen.
Programmieren kann ich leider noch nicht wirklich - ist eher Trial&Error. ;)

Vielen Dank für deine Hilfe anli!!!!

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: Scriptfrage

Beitrag von anli » 21.09.2012, 17:08

Pezi737 hat geschrieben:Vielen Dank für deine Hilfe anli!!!!
Gerne!
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

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“