RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

LibertyX
Beiträge: 767
Registriert: 10.11.2012, 19:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: RP
Hat sich bedankt: 1 Mal
Danksagung erhalten: 19 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von LibertyX » 01.11.2018, 20:34

Das scheint eine etwas ältere Version zu sein, versuche es mal mit der hier, die läuft bei mir ohne Probleme

Code: Alles auswählen

!! Universalprogramm zum Füllen V1.5
!! (c) DrTob 
!! optimized by thkl

!! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedinung des Programms

! Farben
! 0x80 weiß
! 0x81 rot
! 0x82 orange
! 0x83 gelb
! 0x84 gruen
! 0x85 blau 

! Symbole 
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! 0x89 Signal grün
! 0x8A Signal gelb
! 0x8B Signal rot

! Zugriff auf vordefinierte Texte
!
! 0x80 Text  0 (Kanal 1  Text Zeile 1)
! 0x81 Text  1 (Kanal 1  Text Zeile 2)
! 0x82 Text  2 (Kanal 2  Text Zeile 3)
! 0x83 Text  3 (Kanal 2  Text Zeile 4)
! 0x84 Text  4 (Kanal 3  Text Zeile 5)
! 0x85 Text  5 (Kanal 3  Text Zeile 6)
! 0x86 Text  6 (Kanal 4  Text Zeile 7)
! 0x87 Text  7 (Kanal 4  Text Zeile 8)
! 0x88 Text  8 (Kanal 5  Text Zeile 9)
! 0x89 Text  9 (Kanal 5  Text Zeile 10)
! 0x8A Text 10 (Kanal 6  Text Zeile 11)
! 0x8B Text 11 (Kanal 6  Text Zeile 12)
! 0x8C Text 12 (Kanal 7  Text Zeile 13)
! 0x8D Text 13 (Kanal 7  Text Zeile 14)
! 0x8E Text 14 (Kanal 8  Text Zeile 15)
! 0x8F Text 15 (Kanal 8  Text Zeile 16)
! 0x90 Text 16 (Kanal 9  Text Zeile 17)
! 0x91 Text 17 (Kanal 9  Text Zeile 18)
! 0x92 Text 18 (Kanal 10 Text Zeile 19)
! 0x93 Text 19 (Kanal 10 Text Zeile 20)

string zeile1 = "Zeile 1";
string color1 = "0x80";
string icon1  = "";

string zeile2 = "Zeile 2";
string color2 = "0x80";
string icon2  = "";

string zeile3 = "Zeile 3";
string color3 = "0x80";
string icon3  = "";

string zeile4 = "Zeile 4";
string color4 = "0x80";
string icon4  = "";

string zeile5 = "Zeile 5";
string color5 = "0x80";
string icon5  = "";

string zeile6 = "Zeile 6";
string color6 = "0x80";
string icon6  = "";

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

string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;

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\t?,0x3f"; 

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

string command = "0x02";
foreach(bufferLine, msgBuffer) {
   line = bufferLine.StrValueByIndex(splitter, 0);
   icon = bufferLine.StrValueByIndex(splitter, 2);
   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; 
      }
      command = command # ",0x11," # bufferLine.StrValueByIndex(splitter, 1);
      if (icon <> "") {
         command = command # ",0x13," # icon;
      }
   }
   command = command # ",0x0A";
}
command = command # ",0x03";

dom.GetObject("BidCos-RF." # dom.GetObject("$src$").Name().StrValueByIndex(".",1) # ".SUBMIT").State(command);
RaspberryMatic (3.71.12.20231020) @RPI3 | 218 Kanäle in 53 Geräten und 72 CUxD-Kanäle in 8 CUxD-Geräten (2.11) | iobroker.pro - CCU-Historian (3.4.0)

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

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von alchy » 01.11.2018, 20:38

So hat es vorher auch nicht funktioniert.
Fehlerhafte bz. nicht vorhandene Deklaration von Variablen (z.B. von zeile1)

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.

nicolas-eric
Beiträge: 3302
Registriert: 07.01.2015, 23:26
Wohnort: Scheeßel
Hat sich bedankt: 21 Mal
Danksagung erhalten: 11 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von nicolas-eric » 01.11.2018, 20:43

In Deiner Fehlermeldung scheint es um diese Zeilen zu gehen:

Code: Alles auswählen

string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;
Mein Script für den HM-Disp-EP-WM55 enthält die selben Teilen (nur 3x):

Code: Alles auswählen

string splitter="|";
string msgBuffer = zeile2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # icon4;
Da ich Deine Fehlermeldung nicht bekomme, gehe ich davon aus, dass es sich um kein grundsätzliches Problem dieser RM Version an sich handelt, sondern dass Du bei Dir einen Fehler an anderer Stelle im Script hast.
Wieso weshalb warum, das vermag ich aber nicht zu sagen, das machen aber bestimmt andere, die Ahnung vom Scripten haben.

EDIT: Ach da war Alchy ja schon... :D

capitaen_z
Beiträge: 130
Registriert: 05.07.2015, 19:34
Wohnort: Hamburg
Danksagung erhalten: 3 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von capitaen_z » 01.11.2018, 20:49

Danke für die Hinweise/Tipps !
Ich setzte mich morgen da wieder dran.
Das Script war schon immer nicht ganz rund, aber dies ist die erste Version von RaspberryMatic bei der es nicht läuft...
Kann jetzt keine Beweise (Screenshots) liefern, aber wenn da eh der Wurm drin war, dann ist es jetzt Zeit sich darum zu kümmern.

Danke und VG
Leif

capitaen_z
Beiträge: 130
Registriert: 05.07.2015, 19:34
Wohnort: Hamburg
Danksagung erhalten: 3 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von capitaen_z » 02.11.2018, 10:38

Hallo zusammen,

nur ganz kurz, das Display/Skript läuft wieder.
Ich habe jetzt die Version 1.5 (von LibertyX gepostet) aus dem Forum kopiert und meine Änderungen wieder eingefügt.
Das Ergebnis ist wie vorher, das Display läuft, aber ich muss vorher immer ein Skript ohne meine Änderungen einfügen, das Display kurz betätigen und dann mein Skript einfügen... ansonsten wir mir angezeigt das Skript wäre fehlerhaft...
Also erst:

Code: Alles auswählen

                       !! Universalprogramm zum Füllen
!! (c) DrTob
!! optimized by thkl

!! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedinung des Programms

! Farben
! 0x80 weiß
! 0x81 rot
! 0x82 orange
! 0x83 gelb
! 0x84 gruen
! 0x85 blau

! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! 0x89 Signal grün
! 0x8A Signal gelb
! 0x8B Signal rot

! Zugriff auf vordefinierte Texte
!
! 0x80 Text  0 (Kanal 1  Text Zeile 1)
! 0x81 Text  1 (Kanal 1  Text Zeile 2)
! 0x82 Text  2 (Kanal 2  Text Zeile 3)
! 0x83 Text  3 (Kanal 2  Text Zeile 4)
! 0x84 Text  4 (Kanal 3  Text Zeile 5)
! 0x85 Text  5 (Kanal 3  Text Zeile 6)
! 0x86 Text  6 (Kanal 4  Text Zeile 7)
! 0x87 Text  7 (Kanal 4  Text Zeile 8)
! 0x88 Text  8 (Kanal 5  Text Zeile 9)
! 0x89 Text  9 (Kanal 5  Text Zeile 10)
! 0x8A Text 10 (Kanal 6  Text Zeile 11)
! 0x8B Text 11 (Kanal 6  Text Zeile 12)
! 0x8C Text 12 (Kanal 7  Text Zeile 13)
! 0x8D Text 13 (Kanal 7  Text Zeile 14)
! 0x8E Text 14 (Kanal 8  Text Zeile 15)
! 0x8F Text 15 (Kanal 8  Text Zeile 16)
! 0x90 Text 16 (Kanal 9  Text Zeile 17)
! 0x91 Text 17 (Kanal 9  Text Zeile 18)
! 0x92 Text 18 (Kanal 10 Text Zeile 19)
! 0x93 Text 19 (Kanal 10 Text Zeile 20)

string zeile1 = "Zeile 1";
string color1 = "0x80";
string icon1  = "";

string zeile2 = "Zeile 2";
string color2 = "0x80";
string icon2  = "";

string zeile3 = "Zeile 3";
string color3 = "0x80";
string icon3  = "";

string zeile4 = "Zeile 4";
string color4 = "0x80";
string icon4  = "";

string zeile5 = "";
string color5 = "";
string icon5  = "";

string zeile6 = "Zeile 6";
string color6 = "0x80";
string icon6  = "";

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

string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;

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";
foreach(bufferLine, msgBuffer) {
   line = bufferLine.StrValueByIndex(splitter, 0);
   icon = bufferLine.StrValueByIndex(splitter, 2);
   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;
      }
      command = command # ",0x11," # bufferLine.StrValueByIndex(splitter, 1);
      if (icon <> "") {
         command = command # ",0x13," # icon;
      }
   }
   command = command # ",0x0A";
}
command = command # ",0x03";

dom.GetObject("BidCos-RF." # dom.GetObject("$src$").Name().StrValueByIndex(".",1) # ".SUBMIT").State(command);
Dann das Display betätigen und dann mein Skript:

Code: Alles auswählen

                     !! Universalprogramm zum Füllen V1.5
!! (c) DrTob
!! optimized by thkl

!! Das Script holt sich jetzt die Seriennummer des Displays selbst aus der Auslösebedinung des Programms

! Farben
! 0x80 weiß
! 0x81 rot
! 0x82 orange
! 0x83 gelb
! 0x84 gruen
! 0x85 blau

string weiss  = "0x80";
string rot    = "0x81";
string orange = "0x82";
string gelb   = "0x83";
string gruen  = "0x84";
string blau   = "0x85";

! Symbole
! 0x80 AUS
! 0x81 EIN
! 0x82 OFFEN
! 0x83 geschlossen
! 0x84 fehler
! 0x85 alles ok
! 0x86 information
! 0x87 neue nachricht
! 0x88 servicemeldung
! 0x89 Signal grün
! 0x8A Signal gelb
! 0x8B Signal rot

! Zugriff auf vordefinierte Texte
!
! 0x80 Text  0 (Kanal 1  Text Zeile 1)
! 0x81 Text  1 (Kanal 1  Text Zeile 2)
! 0x82 Text  2 (Kanal 2  Text Zeile 3)
! 0x83 Text  3 (Kanal 2  Text Zeile 4)
! 0x84 Text  4 (Kanal 3  Text Zeile 5)
! 0x85 Text  5 (Kanal 3  Text Zeile 6)
! 0x86 Text  6 (Kanal 4  Text Zeile 7)
! 0x87 Text  7 (Kanal 4  Text Zeile 8)
! 0x88 Text  8 (Kanal 5  Text Zeile 9)
! 0x89 Text  9 (Kanal 5  Text Zeile 10)
! 0x8A Text 10 (Kanal 6  Text Zeile 11)
! 0x8B Text 11 (Kanal 6  Text Zeile 12)
! 0x8C Text 12 (Kanal 7  Text Zeile 13)
! 0x8D Text 13 (Kanal 7  Text Zeile 14)
! 0x8E Text 14 (Kanal 8  Text Zeile 15)
! 0x8F Text 15 (Kanal 8  Text Zeile 16)
! 0x90 Text 16 (Kanal 9  Text Zeile 17)
! 0x91 Text 17 (Kanal 9  Text Zeile 18)
! 0x92 Text 18 (Kanal 10 Text Zeile 19)
! 0x93 Text 19 (Kanal 10 Text Zeile 20)

!string zeile1 = "Zeile 1";
!string color1 = "0x80";
!string icon1  = "";

!string zeile2 = "Zeile 2";
!string color2 = "0x80";
!string icon2  = "";

string zeile3 = "";
string color3 = "0x80";
string icon3  = "";

!string zeile4 = "Zeile 4";
!string color4 = "0x80";
!string icon4  = "";

string zeile5 = "";
string color5 = "0x80";
string icon5  = "";

!string zeile6 = "Zeile 6";
!string color6 = "0x80";
!string icon6  = "";

! ## Außentemperatur

var term="LEQ0798861";
var channel=dom.GetObject("BidCos-RF."#term#":1.TEMPERATURE");
var temp = channel.Value();

zeile1 = "Temp "#temp.ToString(1)#" C";

if (temp >= 20.0) {color1 = "0x81";}
if (temp >= 10.0) {color1 = "0x83";}
if (temp >= 5.0) {color1 = "0x80";}
if (temp < 0.0) {color1 = "0x85";}
if (temp < -5.0) {color1 = "0x85";}
if (temp < -10.0) {color1 = "0x85";}
! icon3 = "0x86";

! ## Luftfeuchte

var term="LEQ0798861";
var channel=dom.GetObject("BidCos-RF."#term#":1.HUMIDITY");
var hum = channel.Value();

zeile2 = "Hum "#hum.ToString(1)#" %";

if (hum >= 40) {color2 = "0x85";}
if (hum >= 50) {color2 = "0x84";}
if (hum >= 60) {color2 = "0x84";}
if (hum >= 70) {color2 = "0x83";}
if (hum >= 80) {color2 = "0x82";}
if (hum >= 90) {color2 = "0x81";}
! icon2 = "0x86";

! Uhrzeit

! var uhr = dom.GetObject("%Uhrzeit%").Value();
! zeile4 = "Zeit "#uhr.ToString(0)#" H";
zeile4 = ""# system.Date("%H:%M") #" Uhr";

! var oSysvar = dom.GetObject("Uhrzeit");
! zeile4 = "Time "#Uhrzeit.ToString(0)#" H";

! Fensterprüfung

var oSysvar = dom.GetObject("Fenstervariable");
if (oSysvar.State()==1){
! ## Kanal : MEQ0180208:1 -> Text Zeile 6 , Textfarbe Weiß, Icon
zeile6 = "Fenster zu";
icon6 = "0x83";
color6="0x84";
}
else
{
! ## Kanal : MEQ0180208:1 -> Text Zeile 6 , Textfarbe Rot, Icon
zeile6 = "Fenster auf";
color6 = "0x81";
icon6 = "0x82";
}


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

string splitter="|";
string msgBuffer = zeile1 # splitter # color1 # splitter # icon1 # "\t";
msgBuffer = msgBuffer # zeile2 # splitter # color2 # splitter # icon2 # "\t";
msgBuffer = msgBuffer # zeile3 # splitter # color3 # splitter # icon3 # "\t";
msgBuffer = msgBuffer # zeile4 # splitter # color4 # splitter # icon4 # "\t";
msgBuffer = msgBuffer # zeile5 # splitter # color5 # splitter # icon5 # "\t";
msgBuffer = msgBuffer # zeile6 # splitter # color6 # splitter # icon6;

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\t?,0x3f";

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

string command = "0x02";
foreach(bufferLine, msgBuffer) {
   line = bufferLine.StrValueByIndex(splitter, 0);
   icon = bufferLine.StrValueByIndex(splitter, 2);
   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;
      }
      command = command # ",0x11," # bufferLine.StrValueByIndex(splitter, 1);
      if (icon <> "") {
         command = command # ",0x13," # icon;
      }
   }
   command = command # ",0x0A";
}
command = command # ",0x03";

dom.GetObject("BidCos-RF." # dom.GetObject("$src$").Name().StrValueByIndex(".",1) # ".SUBMIT").State(command);
Dann läuft das Display bis zum nächsten Neustart vom Raspberry.
Dies ist jedoch schon bei der CCU2 so gewesen und ich möchte hier dieses Thema jetzt nicht dafür vollmüllen.

Da jetzt wieder alles wie vorher ist, ein Danke an alle.

VG
Leif

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

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von alchy » 02.11.2018, 11:35

WENN
man ein Script ausführt
UND
es macht nicht, was es soll
UND
man will Hilfe..
DANN
postet man das >> Fehlerprotokoll << zur Laufzeit des Scriptes. :twisted:

Trotzdem bleibt der Rat lt. Glaskugel derselbe auch wenn du ihn standhaft ignorierst.
Deklariere in deinem Script die Scriptvariablen welche du verwendest.

Kopiere also die folgende Zeile an den Anfang deines Scriptes

Code: Alles auswählen

string zeile1;string color1;string icon1;string zeile2;string color2;string icon2;string zeile3;string color3;string icon3;string zeile4;string color4;string icon4;string zeile5;string color5;string icon5;string zeile6;string color6;string icon6;
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.

tloeffel
Beiträge: 447
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von tloeffel » 02.11.2018, 21:42

Hallo Jens,

ich habe etwas seltsames festgestellt. Wie ich lernte können SysVar's den Wert Value() und LastValue () haben. Dieses habe ich getestet und es stimmt. Selbst angelegte SysVar's haben dieses Verhalten, auch die Sysvar: ID_GW_SYSALARM, nur die Sysvar: ID_GW_SYSSERVICE nicht.

Also bei dieser Sysvar: ID_GW_SYSSERVICE zeigt sich dieses Verhalten:
1) Auslösen von Sabotagekontakten bei zwei Geräten.
2) Es wird wie folgt Value() und LastValue() angezeigt: erst 0,0 dann 1,1 dann 2,2 dann 1,1.

Es wird bei mir kein unterschiedlicher Status zwischen Value() und LastValue() angezeigt.

Im Vergleich ID_ID_GW_SYSALARM:
1) Auslösen von Alarmen bei zwei Geräten.
2) Es wird wie folgt Value() und LastValue() angezeigt: erst 0,0 dann 1,0 dann 2,1 dann 1,2., dann 0,1. Also wie zu erwarten.

Code: Alles auswählen

WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(ID_GW_SYSSERVICE).Name()); 
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(ID_GW_SYSSERVICE).Value()); 
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(ID_GW_SYSSERVICE).LastValue());

Kann es sein das mit der ID_GW_SYSSERVICE etwas nicht stimmt?

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von MartinBr » 03.11.2018, 09:29

Hallo,
ich setzte als Hardware das Asus Tinkerboard S mit dem Funkmodul RPI-RF-MOD ein. Seit dem Update auf die 3.37.20181026 bemerke ich nun zum dritten Mal einen Absturz der Weboberfläche. Per SSH komme ich auf die Box und kann sie per "reboot" neu starten. Irgendwo habe ich auch gelesen, dass es wohl ausreicht, nur die Oberfläche (den Dienst) neu zu starten.

Mit der Vorgängerversion habe ich dieses Problem nicht gehabt.

Gruß
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

Benutzeravatar
jmaus
Beiträge: 9818
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
Kontaktdaten:

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von jmaus » 03.11.2018, 09:44

Bitte berichte doch mal genauer von den Symptomen. Was passiert bei dem "Absturz"? Kannst du Muster erkennen bei denen das immer passiert damit man das reproduziert bekommt? Was sagen die Logfiles zu dem Zeitpunkt des Absturzes?
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Monsterberti
Beiträge: 39
Registriert: 16.07.2018, 13:08

Re: RaspberryMatic 3.37.8.20181026 – Erfahrungsberichte

Beitrag von Monsterberti » 03.11.2018, 16:41

...
Zuletzt geändert von Monsterberti am 04.11.2018, 08:49, insgesamt 3-mal geändert.

Gesperrt

Zurück zu „RaspberryMatic“