Ansteuern der Statusanzeige mit E-Paper-Display aus Script

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Hoepker
Beiträge: 24
Registriert: 14.05.2017, 18:35

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von Hoepker » 27.07.2017, 11:46

Hallo,

ich habe auch versucht mich in dieses Skript einzuarbeiten, aber leider habe ich ein Problem - Wahrscheinlich ein Grundsatzproblem.

Ich habe die Scriptversion von Thalif genommen und habe nur die Seriennummer korrigiert - Siehe Code. Ich wollte mal testen, ob überhaupt irgendwas angezeigt wird, bevor ich mich an Details wage. Es gab auch keine Fehler bei der Fehlerprüfung. Daher hatte ich gehofft wenigstens einen Statischen Text zu sehen, aber die Zeilen 2-4 bleiben leer, egal was ich mache.

Was mache ich falsch.

Christian

Code: Alles auswählen

!! Universalprogramm zum Füllen des HM-Disp-EP-WM55
!! (c) DrTob
!! Version 1.01



! Symbole 
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung


! Zugriff auf vordefinierte Texte
!
! 0x80 Textblock  1
! 0x81 Textblock  2
! 0x82 Textblock  3
! 0x83 Textblock  4
! 0x84 Textblock  5
! 0x85 Textblock  6
! 0x86 Textblock  7
! 0x87 Textblock  8
! 0x88 Textblock  9
! 0x89 Textblock 10


! Tonfolgen 
! 0xC0 AUS
! 0xC1 LANG LANG
! 0xC2 LANG KURZ
! 0xC3 LANG KURZ KURZ
! 0xC4 KURZ
! 0xC5 KURZ KURZ
! 0xC6 LANG

!Signale
! 0xF0 AUS
! 0xF1 Rotes Blitzen
! 0xF2 Grünes Blitzen
! 0xF3 Orangenes Blitzen

!Seriennummer des HM-Disp-EP-WM55.
string seriennummer = " NEQ1596804";

!Variablen für die Texte und Icons
!Nicht verwendete Variablen nicht löschen, sondern auf "" setzen!
!Zeilen-Variablen können 0x80-0x89 für vordefinierte Texte oder bis zu 12 Zeichen Freitext sein. (längere Texte werden abgeschnitten)
string zeile2 = "0x80";
string icon2  = "0x86";

string zeile3 = "Freier Text";
string icon3  = "";

string zeile4 = "";
string icon4  = "";

string signal = "0xF0";

string tonfolge = "0xC0";

! 1 bis 15. 0 = Unendlich
integer wiederholungen = 1;

! es wird zum nächstmöglichen Abstand aufgerundet. Maximum ist 160s.
integer abstand = 10;



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! System Routine do not change anything below !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

string splitter="|";
string msgBuffer = zeile2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # icon4;

string substitutions = "A,0x41\tB,0x42\tC,0x43\tD,0x44\tE,0x45\tF,0x46\tG,0x47\tH,0x48\tI,0x49\tJ,0x4A\tK,0x4B\tL,0x4C\tM,0x4D\tN,0x4E\tO,0x4F\tP,0x50\tQ,0x51\tR,0x52\tS,0x53\tT,0x54\tU,0x55\tV,0x56\tW,0x57\tX,0x58\tY,0x59\tZ,0x5A";
substitutions = substitutions # "\ta,0x61\tb,0x62\tc,0x63\td,0x64\te,0x65\tf,0x66\tg,0x67\th,0x68\ti,0x69\tj,0x6A\tk,0x6B\tl,0x6C\tm,0x6D\tn,0x6E\to,0x6F\tp,0x70\tq,0x71\tr,0x72\ts,0x73\tt,0x74\tu,0x75\tv,0x76\tw,0x77\tx,0x78\ty,0x79\tz,0x7A";
substitutions = substitutions # "\t0,0x30\t1,0x31\t2,0x32\t3,0x33\t4,0x34\t5,0x35\t6,0x36\t7,0x37\t8,0x38\t9,0x39\t ,0x20\t!,0x21\t\",0x22\t%,0x25\t&,0x26\t=,0x27\t(,0x28\t),0x29\t*,0x2A\t+,0x2B\t,,0x2C\t-,0x2D\t.,0x2E\t/,0x2F";
substitutions = substitutions # "\tÄ,0x5B\tÖ,0x23\tÜ,0x24\tä,0x7B\tö,0x7C\tü,0x7D\tß,0x5F\t:,0x3A\t;,0x3B\t@,0x40\t>,0x3E"; 

string bufferLine;
string substEntry;
integer i;
string char;
string line;
string icon;

string command = "0x02,0x0A";
foreach(bufferLine, msgBuffer) {
   line = bufferLine.StrValueByIndex(splitter, 0);
   icon = bufferLine.StrValueByIndex(splitter, 1);
   if ((line <> "") || (icon <> "")) {
      command = command # ",0x12";
      if ((line.Substr(0,2) == "0x") && (line.Length() == 4)) {
         command = command # "," # line;
         i = 12;
      }
      else {
         i = 0;
      }
      while ((i < line.Length()) && (i < 12)) { 
         char = line.Substr(i, 1);     
         foreach(substEntry, substitutions){
            if (char == substEntry.Substr(0,1)){command = command # substEntry.Substr(1,5);}
         }
         i = i + 1; 
      }
      if (icon <> "") {
         command = command # ",0x13," # icon;
      }
   }
   command = command # ",0x0A";
}

command = command # ",0x14," # tonfolge # ",0x1C,";

if (wiederholungen < 1){
   command = command # "0xDF,0x1D,";
}
else { 
   if (wiederholungen < 11) {
      command = command # "0xD" # (wiederholungen - 1) # ",0x1D,";
   }
   else {
      if (wiederholungen == 11) {
         command = command # "0xDA,0x1D,";
      }
      else {
         if (wiederholungen == 12) {
            command = command # "0xDB,0x1D,";
         }
         else {
            if (wiederholungen == 13) {
               command = command # "0xDC,0x1D,";
            }
            else {
               if (wiederholungen == 14) {
                  command = command # "0xDD,0x1D,";
               }
               else {
                  command = command # "0xDE,0x1D,";
               }
            }
         }
      }
   }
}


if (abstand <= 10) {
   command = command # "0xE0,0x16,";
}
else {
   if (abstand <= 100) {
      command = command # "0xE" # (abstand - 1 / 10) # ",0x16,";
   }
   else {
      if (abstand <= 110) {
         command = command # "0xEA,0x16,";
      }
      else {
         if (abstand <= 120) {
            command = command # "0xEB,0x16,";
         }
         else {
            if (abstand <= 130) {
               command = command # "0xEC,0x16,";
            }
            else {
               if (abstand <= 140) {
                  command = command # "0xED,0x16,";
               }
               else {
                  if (abstand <= 150) {
                     command = command # "0xEE,0x16,";
                  }
                  else {
                     command = command # "0xEF,0x16,";
                  }
               }
            }
         }
      }
   }
}


command = command # signal # ",0x03"; 

dom.GetObject("BidCos-RF." # seriennummer # ":3.SUBMIT").State(command);

Hoepker
Beiträge: 24
Registriert: 14.05.2017, 18:35

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von Hoepker » 27.07.2017, 12:22

Hat sich erledigt. Es war ein Blank in der Seriennummer.

Sorry

Christian

bof
Beiträge: 16
Registriert: 11.08.2017, 10:01
System: CCU

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von bof » 11.08.2017, 10:14

Hallo zusammen,

ich habe mir auch das E-Paper Display zugelegt und habe schon eine Umgebung seit 1,5 Jahren laufen.
Derzeit arbeite ich mit knapp 30 Aktoren inkl. Programmen.

Da ich mir nun das Display zugelegt habe, um spezielle Statusmeldungen anzeigen zu lassen, habe ich derzeit anscheinend ein Grundproblem in der Ansteuerung mit dem hier zu sehendem Universalscript.

Bisherige Versuche:

CCU2 Firmware: 2.29.18
Es wurde ein Programm in der Webui ohne Script erstellt, das mir die Statusanzeige der Fenster ausgibt (Ein bis mehrere offene Fenster dann auf / Sonst alles zu) . Diese Anzeige funktioniert mit dem Display (im generellen ist es also ansteuerbar).

Nun möchte ich per Script mir die Temperatur des Außensesors anzeigen lassen. Leider ist das nicht als Anzeige in einer Variable im Programm abbildbar. Somit kam ich nach einer kurzen Suche auf dieses Script.
Gesagt getan, Programm erstellt und die Seriennummer des Displays eingetragen.

Im Anschluß, da ich in einem Programm mir die Temperatur in eine Systemvariable schreibe (was auch funktioniert), diesen Befehl genommen und ihn mit in Zeile 4 integriert.
Zum Schluß das Programm gestartet, aber das Display zuckt noch nicht mal mit einer Veränderung.

Dann bin ich hingegangen und habe mir versucht einen freien Text in Zeile 4 darzustellen, doch leider war das auch ohne erfolg. :cry:
Es scheint mir, dass das Display nicht mit dem Script angesprochen wird.

Hat jemand schon Erfahrungen mit der aktuellen Firmware? Liegt es vielleicht daran?
Gerne kann ich auch noch mal den Code hier Posten, wenn es weiterhilft.

Fazit:
Programmansteuerung des Display ohne Script geht
Mit Script leider keinerlei Erfolg.

Um Hilfestellung würde ich mich freuen.

LG

Björn

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von Marcus1@@@ » 11.08.2017, 12:51

kurz, das Script funktioniert auch mit neusten Firmwares einwandfrei. Triggerst du denn die Anzeige irgendwie? Von alleine hat das Display nämlich keine Lust was anzuzeigen.
Grüße

bof
Beiträge: 16
Registriert: 11.08.2017, 10:01
System: CCU

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von bof » 11.08.2017, 19:39

Ich hinterlege mal das Script. Ist wahrscheinlich einfacher.

Code: Alles auswählen

    !! Universalprogramm zum Füllen des HM-Disp-EP-WM55
    !! (c) DrTob
    !! Version 1.01



    ! Symbole
    ! 0x80 AUS
    ! 0x81 EIN
    ! 0x82 OFFEN
    ! 0x83 geschlossen
    ! 0x84 fehler
    ! 0x85 alles ok
    ! 0x86 information
    ! 0x87 neue nachricht
    ! 0x88 servicemeldung


    ! Zugriff auf vordefinierte Texte
    !
    ! 0x80 Textblock  1
    ! 0x81 Textblock  2
    ! 0x82 Textblock  3
    ! 0x83 Textblock  4
    ! 0x84 Textblock  5
    ! 0x85 Textblock  6
    ! 0x86 Textblock  7
    ! 0x87 Textblock  8
    ! 0x88 Textblock  9
    ! 0x89 Textblock 10


    ! Tonfolgen
    ! 0xC0 AUS
    ! 0xC1 LANG LANG
    ! 0xC2 LANG KURZ
    ! 0xC3 LANG KURZ KURZ
    ! 0xC4 KURZ
    ! 0xC5 KURZ KURZ
    ! 0xC6 LANG

    !Signale
    ! 0xF0 AUS
    ! 0xF1 Rotes Blitzen
    ! 0xF2 Grünes Blitzen
    ! 0xF3 Orangenes Blitzen

    !Seriennummer des HM-Disp-EP-WM55.
    string seriennummer = "NEQ1463033";

    !Variablen für die Texte und Icons
    !Nicht verwendete Variablen nicht löschen, sondern auf "" setzen!
    !Zeilen-Variablen können 0x80-0x89 für vordefinierte Texte oder bis zu 12 Zeichen Freitext sein. (längere Texte werden abgeschnitten)
    string zeile2 = "";
    string icon2  = "";

    string zeile3 = "";
    string icon3  = "";

    string temp = dom.GetObject("BidCos-RF.OEQ0088125:1").DPByHssDP("TEMPERATURE").Value().ToString(1);
    string zeile4 = temp # " C";
    string icon4  =  "0x86";

    string signal = "0xF0";

    string tonfolge = "0xC0";

    ! 1 bis 15. 0 = Unendlich
    integer wiederholungen = 1;

    ! es wird zum nächstmöglichen Abstand aufgerundet. Maximum ist 160s.
    integer abstand = 10;



    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ! System Routine do not change anything below !
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    string splitter="|";
    string msgBuffer = zeile2 # splitter # icon2 # "\t";
    msgBuffer = msgBuffer # zeile3 # splitter # icon3 # "\t";
    msgBuffer = msgBuffer # zeile4 # splitter # icon4;

    string substitutions = "A,0x41\tB,0x42\tC,0x43\tD,0x44\tE,0x45\tF,0x46\tG,0x47\tH,0x48\tI,0x49\tJ,0x4A\tK,0x4B\tL,0x4C\tM,0x4D\tN,0x4E\tO,0x4F\tP,0x50\tQ,0x51\tR,0x52\tS,0x53\tT,0x54\tU,0x55\tV,0x56\tW,0x57\tX,0x58\tY,0x59\tZ,0x5A";
    substitutions = substitutions # "\ta,0x61\tb,0x62\tc,0x63\td,0x64\te,0x65\tf,0x66\tg,0x67\th,0x68\ti,0x69\tj,0x6A\tk,0x6B\tl,0x6C\tm,0x6D\tn,0x6E\to,0x6F\tp,0x70\tq,0x71\tr,0x72\ts,0x73\tt,0x74\tu,0x75\tv,0x76\tw,0x77\tx,0x78\ty,0x79\tz,0x7A";
    substitutions = substitutions # "\t0,0x30\t1,0x31\t2,0x32\t3,0x33\t4,0x34\t5,0x35\t6,0x36\t7,0x37\t8,0x38\t9,0x39\t ,0x20\t!,0x21\t\",0x22\t%,0x25\t&,0x26\t=,0x27\t(,0x28\t),0x29\t*,0x2A\t+,0x2B\t,,0x2C\t-,0x2D\t.,0x2E\t/,0x2F";
    substitutions = substitutions # "\tÄ,0x5B\tÖ,0x23\tÜ,0x24\tä,0x7B\tö,0x7C\tü,0x7D\tß,0x5F\t:,0x3A\t;,0x3B\t@,0x40\t>,0x3E";

    string bufferLine;
    string substEntry;
    integer i;
    string char;
    string line;
    string icon;

    string command = "0x02,0x0A";
    foreach(bufferLine, msgBuffer) {
       line = bufferLine.StrValueByIndex(splitter, 0);
       icon = bufferLine.StrValueByIndex(splitter, 1);
       if ((line <> "") || (icon <> "")) {
          command = command # ",0x12";
          if ((line.Substr(0,2) == "0x") && (line.Length() == 4)) {
             command = command # "," # line;
             i = 12;
          }
          else {
             i = 0;
          }
          while ((i < line.Length()) && (i < 12)) {
             char = line.Substr(i, 1);    
             foreach(substEntry, substitutions){
                if (char == substEntry.Substr(0,1)){command = command # substEntry.Substr(1,5);}
             }
             i = i + 1;
          }
          if (icon <> "") {
             command = command # ",0x13," # icon;
          }
       }
       command = command # ",0x0A";
    }

    command = command # ",0x14," # tonfolge # ",0x1C,";

    if (wiederholungen < 1){
       command = command # "0xDF,0x1D,";
    }
    else {
       if (wiederholungen < 11) {
          command = command # "0xD" # (wiederholungen - 1) # ",0x1D,";
       }
       else {
          if (wiederholungen == 11) {
             command = command # "0xDA,0x1D,";
          }
          else {
             if (wiederholungen == 12) {
                command = command # "0xDB,0x1D,";
             }
             else {
                if (wiederholungen == 13) {
                   command = command # "0xDC,0x1D,";
                }
                else {
                   if (wiederholungen == 14) {
                      command = command # "0xDD,0x1D,";
                   }
                   else {
                      command = command # "0xDE,0x1D,";
                   }
                }
             }
          }
       }
    }


    if (abstand <= 10) {
       command = command # "0xE0,0x16,";
    }
    else {
       if (abstand <= 100) {
          command = command # "0xE" # (abstand - 1 / 10) # ",0x16,";
       }
       else {
          if (abstand <= 110) {
             command = command # "0xEA,0x16,";
          }
          else {
             if (abstand <= 120) {
                command = command # "0xEB,0x16,";
             }
             else {
                if (abstand <= 130) {
                   command = command # "0xEC,0x16,";
                }
                else {
                   if (abstand <= 140) {
                      command = command # "0xED,0x16,";
                   }
                   else {
                      if (abstand <= 150) {
                         command = command # "0xEE,0x16,";
                      }
                      else {
                         command = command # "0xEF,0x16,";
                      }
                   }
                }
             }
          }
       }
    }


    command = command # signal # ",0x03";

    dom.GetObject("BidCos-RF." # seriennummer # ":3.SUBMIT").State(command);
Es wird alle 15 Minuten aufgerufen. Auch auf 1 Minute ergibt keine Besserung.
Das auslesen der Außentemperatur geht hiermit nicht.



Der Befehl in einem anderen Programm, der in Kombination nur für die Temperatur in eine Systemvariable zu schreiben ist funktioniert!
Der Code lautet:

Code: Alles auswählen

dom.GetObject("Temperatur-Garten").State(dom.GetObject("Temp-Garten:1").DPByHssDP("TEMPERATURE").Value().ToString(1) # " °C");
Aber selbst wenn ich das obige mit "Temp-Garten:1" ändere, funkioniert das Ansteuern auch nicht.

Habe ich hier einen Denkfehler?

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von Marcus1@@@ » 12.08.2017, 10:19

Code: Alles auswählen

string temp = dom.GetObject("BidCos-RF.OEQ0088125:1:1.TEMPERATURE").Value().ToString(1);
probier das mal!

Alternativ

Code: Alles auswählen

string temp = "23.0";
deklarier es mal mit einer festen Zahl, ob die angezeigt wird.

Ich hatte mir auch mal alle halbe Stunde die Temperatur aktualisieren lassen. Das Ergebnis war ständig die Batterien zu tauschen, deswegen bin ich davon wieder weg.

Grüße

bof
Beiträge: 16
Registriert: 11.08.2017, 10:01
System: CCU

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von bof » 13.08.2017, 22:09

Hallo zusammen,

habe beide Varianten ausprobiert, leider ohne Erfolg.
Sowohl die Temp Variable als auch Variable mit einem festen Wert wird nicht angetzeigt.......
Das ist nir wirklich Suspekt und hatte sowas noch nie......

Aber die Seriennummer des Diplays stimmt......

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

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von alchy » 13.08.2017, 22:13

Und was sagt das >> Fehlerprotokoll <<
zum Zeitpunkt des Aufrufs?

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.

bof
Beiträge: 16
Registriert: 11.08.2017, 10:01
System: CCU

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von bof » 14.08.2017, 22:48

Hier mal der Logauszug des Aufrufes:

Code: Alles auswählen

Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: IseDOMPrg::ExecuteProgram: called Program ID = 4011 [iseDOMPrg.cpp:585]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: IseDOMPrg::ExecuteProgram: execute Program ID = 4011; Destination ID = 4013 [iseDOMPrg.cpp:591]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: IseDOMPrg::Execute: execute Program ID = 4011; Destination ID = 4013 [iseDOMPrg.cpp:609]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: IseDOMPrg::Execute: start execute Destination within the trigger delay 0 [iseDOMPrg.cpp:613]
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: SchedulerRT::Add: added script element - id= 4013; time= 0 [iseRTScheduler.cpp:343]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: IseDOMPrg::Execute: pDest->ExecuteDestination succeeded from Program ID = 4011 with valNew = 1 [iseDOMPrg.cpp:623]
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: http id #0 sends parsed file [httpServer.cpp:2029]
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: IseESP::ScriptRuntimeError: Stack trace: [-1]   0 0x0000 [0] 236 0x00ec [1]   0 0x0000 [2] 145 0x0091 [3]   0 0x0000 [4]  99 0x0063  [iseESPexec.cpp:12268]
Aug 14 22:42:09 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError:     !! Universalprogramm zum F��n des HM-Disp-EP-WM55     !! (c) DrTob     !! Version 1.01        ! Symbole     ! 0x80 AUS     ! 0x81 EIN     ! 0x82 OFFEN     ! 0x83 geschlossen     ! 0x84
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: SchedulerRT::Execute -> ExecuteScript: id = 4013; ticks = 30 [iseRTScheduler.cpp:601]
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: SchedulerRT::ThreadFunction(): wait for event ms= 4294967295 [iseRTScheduler.cpp:481]
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: RX for OEQ0299397: @3799743637 RSSI=-58dB 0x5881AC -> 0x000000 Generic [MEQ0775454]:   CNT=69,RPTEN=1,RPTED=0,BIDI=0,BURST=0,WAKEUP=0,WAKEMEUP=1,BCAST=1,TYPE=0x5A   DATA = 24 D7 4C 
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: Event: OEQ0299397:2.ACTUAL_TEMPERATURE=21.500000
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: Event: OEQ0299397:2.ACTUAL_HUMIDITY=76.000000
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: Event: OEQ0299397:2.SET_TEMPERATURE=4.500000
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send 3 events
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send 3 events
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send 3 events
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send 3 events
Aug 14 22:42:09 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: XmlRpcMethodEvent::execute: Event="OEQ0299397:2"."ACTUAL_TEMPERATURE"=21.500000 [iseXmlRpc.cpp:344]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: CHANNEL::SetLastDPActionTime: call on change; id = 2998 [iseDOMchn.h:288]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: DEVICE::SetLastActionTime: call on change; id = 2965 [iseDOMdev.h:225]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: EventThread::ThreadFunction: wait max timeout = 240000 [iseRTEvent.cpp:69]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: XmlRpcMethodEvent::execute: UpdateValue succeeded; val = 21.500000 [iseXmlRpc.cpp:387]
Aug 14 22:42:09 homematic-ccu2 local0.info ReGaHss: Info: XmlRpcMethodEvent::execute: Event="OEQ0299397:2"."ACTUAL_HUMIDITY"=76.000000 [iseXmlRpc.cpp:344]
Aug 14 22:42:09 homematic-ccu2 local0.debug ReGaHss: Verbose: CHANNEL::SetLastDPActionTime: call on change; id = 2998 [iseDOMchn.h:288]
Aug 14 22:42:10 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: DEVICE::SetLastActionTime: call on change; id = 2965 [iseDOMdev.h:225]
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: EventThread::ThreadFunction: wait max timeout = 240000 [iseRTEvent.cpp:69]
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: XmlRpcMethodEvent::execute: UpdateValue succeeded; val = 76.000000 [iseXmlRpc.cpp:387]
Aug 14 22:42:10 homematic-ccu2 local0.info ReGaHss: Info: XmlRpcMethodEvent::execute: Event="OEQ0299397:2"."SET_TEMPERATURE"=4.500000 [iseXmlRpc.cpp:344]
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: CHANNEL::SetLastDPActionTime: call on change; id = 2998 [iseDOMchn.h:288]
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: DEVICE::SetLastActionTime: call on change; id = 2965 [iseDOMdev.h:225]
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: EventThread::ThreadFunction: wait max timeout = 240000 [iseRTEvent.cpp:69]
Aug 14 22:42:10 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Aug 14 22:42:10 homematic-ccu2 local0.debug ReGaHss: Verbose: XmlRpcMethodEvent::execute: UpdateValue succeeded; val = 4.500000 [iseXmlRpc.cpp:387]
Aug 14 22:42:10 homematic-ccu2 user.debug rfd: HSSXmlRpcEventDispatcher::Handle send completed
Auffällig ist, dass mein Display, welcher im String steht gar nicht erscheint.

Teilauszug vom Code des Scriptes:

Code: Alles auswählen

    string seriennummer = "NEQ1463033";
Björn

bof
Beiträge: 16
Registriert: 11.08.2017, 10:01
System: CCU

Re: Ansteuern der Statusanzeige mit E-Paper-Display aus Scri

Beitrag von bof » 19.10.2017, 07:29

Guten Morgen zusammen,

ich wollte mich noch einmal kurz zurück melden, da ich diese Anfrage gestellt hatte.
Da jeder mir mitteilte, dass es so eigentlich richtig ist, habe ich versucht nachzuvollziehen, warum er die Zeilen nicht schreibt.

Mit dem Befehl WriteLine konnte ich dann irgendwann mal erkennen, dass er nichts zurückgibt.
Dann habe ich Variablenwerte eingesetzt und es kam einmal der Wert zurück.
Im Anschluss habe ich dann noch einmal im CCU-Historian nachgeschaut, wie genau der Sensor definiert ist.
Im Anschluss habe ich die Zeilen angepasst und siehe da, es erschien auf dem Display.
Ich weiss jetzt nicht, ob es auch an dem durchgeführten FirmwareUpdate der CCU2 lag.

Dennoch habe ich es nun geschafft, die Anzeige mit der aktuellen Temperatur zu erhalten.
Der Code, welcher nun funktioniert lautet so.

Code: Alles auswählen

string temp = dom.GetObject("Temp-Garten:1").DPByHssDP("TEMPERATURE").Value().ToString(1);
Danke an alle, die mich hier unterstützt haben.

Björn

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“