RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

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

Moderatoren: jmaus, Co-Administratoren

hoedlmoser
Beiträge: 205
Registriert: 19.01.2015, 07:42
Hat sich bedankt: 17 Mal
Danksagung erhalten: 8 Mal

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von hoedlmoser » 19.12.2018, 06:08

jmaus hat geschrieben:
18.12.2018, 21:08
klana hat geschrieben:
18.12.2018, 20:38
Trotzdem verliere ich weiter Speicher (ja ich weiß das der dynamisch reserviert und wieder frei gegeben wird) und es wird wohl bald soweit sein,
dass wieder alles hängt.
Also ich sehe aus deinen Daten nicht wirklich das da etwas kritisch ist:
das hatten wir doch schon mal in viewtopic.php?f=65&t=46377&p=464307&hilit=free#p464130
RaspberryMatic 3.49.17.20191225 on Charly with Pi 3B+ and Aurel Groundplane binded by openHAB 2.5.0

Benutzeravatar
klana
Beiträge: 580
Registriert: 08.02.2015, 08:37

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von klana » 19.12.2018, 13:46

jmaus hat geschrieben:
18.12.2018, 21:08
Da steht zwar "Free 170MB" aber bei "Cached 556MB" solltest du eigentlich aufatmen. Zeig mal den Skript den du benutzt um dir den freien Speicher berechnen/anzeigen zu lassen.

Hallo Jens,
hier das Script dazu. Den DutyCycle hab ich auskommentiert, da der ja jetzt automatisch kommt.

Code: Alles auswählen

! Systeminfos auslesen und in Systemvariablen speichern 
!--------------------------------------------------------------
! Folgende Systemvariablen in der CCU2 anlegen:
!     CCU2_DutyCycle, 
!     CCU2_Load_1min, 
!     CCU2_Load_5min,
!     CCU2_Load_15min, 
!     CCU2_SYSfreeMem, 
!     CCU2_SYSTotalMem
!     CCU2_UpTime, 
!     CCU2_FWVersion
!     CCU2_ReGa_Version
!--------------------------------------------------------------

boolean debug  = false;     ! Debug einschalten mit true
string strOut  = "";            ! Outputpuffer für Rückgaben 
string command = "";        ! Auszuführendes Commando

string stdout;
string stderr;
string list = "";


!--------------------------------------------------------------
! DutyCycle CCU mit HM Script und CUxD.exec (c) by Alchy v 0.1
!--------------------------------------------------------------
! command = "echo 'load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]'|tclsh |grep -o 'DUTY_CYCLE.[0-9]*.'";
! dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(command);
! dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
! if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_DutyCycle"))
! {
!    if(debug) 
!    {
!        WriteLine((dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex(" ",1)).ToFloat());
!    } 
!    else 
!    {
!       dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_DutyCycle").State((dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex(" ",1)).ToFloat());
      ! list = system.Date("%H:%M:%S") # " Raspi-DutyCycle  " #(dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex(" ",1)).T
      ! system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
!     } 
!}



!--------------------------------------------------------------
! CCU2 Load-Average
! FEHLT NOCH : 10s-cpu-load: 28.3% 
!--------------------------------------------------------------
command = "cat /proc/loadavg";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(command);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
strOut = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_Load_1min")) 
{
    var loadA_1Min = strOut.Substr(0,4);
    var loadA_5Min = strOut.Substr(5,4);
    var loadA_15Min = strOut.Substr(10,4);
    var vier = strOut.Substr(15,5);
    var fuenf = strOut.Substr(21,5);
    if (debug) {
        WriteLine("?? : "#strOut);
        WriteLine("Gemittelt  1  Minute   : " #loadA_1Min);
        WriteLine("Gemittelt  5  Minuten : " #loadA_5Min);
        WriteLine("Gemittelt 15 Minuten : " #loadA_15Min);
        WriteLine("aktuell lauffähigen (runnable) Prozesse / Anzahl der Kernel Scheduling Entities im System           : " #vier);
        WriteLine("PID des jüngsten im System erzeugten Prozesses : " #fuenf);
    } else {
       dom.GetObject("CCU2_Load_1min").State(loadA_1Min);
       dom.GetObject("CCU2_Load_5min").State(loadA_5Min);
       dom.GetObject("CCU2_Load_15min").State(loadA_15Min);
      !  list = system.Date("%H:%M:%S") # " Raspi-Load-1min  " #loadA_1Min;
      !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
      !  list = system.Date("%H:%M:%S") # " Raspi-Load-5min  " #loadA_5Min;
      !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
      !  list = system.Date("%H:%M:%S") # " Raspi-Load-15min  " #loadA_15Min;
      !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);

    }
}


!--------------------------------------------------------------
! Memory Frei
!--------------------------------------------------------------
command = "cat /proc/meminfo | grep 'MemFree:'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(command);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
strOut = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
strOut = strOut.Substr(15,12);

if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_SYSfreeMem")) 
{
    if (debug) {
      WriteLine("CCU2 SYSfreeMem : " #strOut);
    } else {
      dom.GetObject("CCU2_SYSfreeMem").State(strOut);
      !  list = system.Date("%H:%M:%S") # " Raspi-SYSfreeMem  " #strOut;
      !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
    }
}


!--------------------------------------------------------------
! Memory Total
!--------------------------------------------------------------
command = "cat /proc/meminfo | grep 'MemTotal:'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(command);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
strOut = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
strOut = strOut.Substr(15,12);

if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_SYSTotalMem")) 
{
    if (debug) {
       WriteLine("CCU2 SYSTotalMem : "#strOut);
    } else {
       dom.GetObject("CCU2_SYSTotalMem").State(strOut);
     !  list = system.Date("%H:%M:%S") # " Raspi-SYSTotalMem " #strOut;
     !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
    }
}


!--------------------------------------------------------------
! Uptime (Betriebszeit) der CCU2 oder Raspberry auslesen
!--------------------------------------------------------------
command = "cat /proc/uptime | awk '// { printf \"%d Tage %02d Std %02d Min\", $1/86400, $1/3600%24, $1/60%60 }'";
dom.GetObject ("CUxD.CUX2801001:1.CMD_SETS").State (command);
dom.GetObject ("CUxD.CUX2801001:1.CMD_QUERY_RET").State (1);

if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_UpTime")) 
{
    if(debug) {
        WriteLine("CCU2_UpTime : " #dom.GetObject ("CUxD.CUX2801001:1.CMD_RETS").State());
    }
    else {
        dom.GetObject ("CCU2_UpTime").State(dom.GetObject ("CUxD.CUX2801001:1.CMD_RETS").State());
      !  list = system.Date("%H:%M:%S") # " Raspi-UpTime  " #dom.GetObject ("CUxD.CUX2801001:1.CMD_RETS").State();
      !  system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
    }
}


!--------------------------------------------------------------
! CCU2 Firmwareversion
!--------------------------------------------------------------
command = "cat /boot/VERSION";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(command);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
strOut = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_FWVersion")) 
{
    if(strOut)
    {
     if(debug) {WriteLine("strOut:" #strOut);}
      strOut = strOut.StrValueByIndex("=",1).Trim();
    
      if (debug) {
         WriteLine("CCU2 Version : "#strOut);
         WriteLine("Lange: "#strOut.Length());
      } else {
         dom.GetObject("CCU2_FWVersion").State(strOut);
      ! list = system.Date("%H:%M:%S") # " Raspi-Version " #strOut;
      ! system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
      }
    }
}



! CPU Temperatur Raspi auslesen und noch mit Parse das Ergebnis splitten
!    # vcgencmd measure_temp
!    temp=41.2'C

string temp;
system.Exec("vcgencmd measure_temp | cut -d '=' -f2 | cut -d\"'\" -f1", &temp);
if(temp != "") 
{
  temp = temp.ToFloat();
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU_Temp").State(temp);
 ! list = system.Date("%H:%M:%S") # " Raspi-CPU-Temp " #temp;
 ! system.Exec("logger -t script -p user.debug [CuxD-Timer-15Minuten : "# list #"]", &stdout, &stderr);
}

dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU2_ReGa_Version").State(dom.BuildLabel());
Gruß
Klana
Es ist nett, wichtig zu sein. Aber es ist wichtiger, nett zu sein.

Benutzeravatar
jmaus
Beiträge: 5993
Registriert: 17.02.2015, 14:45
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Dresden
Hat sich bedankt: 16 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von jmaus » 19.12.2018, 13:59

klana hat geschrieben:
19.12.2018, 13:46
jmaus hat geschrieben:
18.12.2018, 21:08
Da steht zwar "Free 170MB" aber bei "Cached 556MB" solltest du eigentlich aufatmen. Zeig mal den Skript den du benutzt um dir den freien Speicher berechnen/anzeigen zu lassen.
hier das Script dazu. Den DutyCycle hab ich auskommentiert, da der ja jetzt automatisch kommt.
Ok, Dank. MemFree kannst du zu dem Zwecke wie du es nutzt wirklich nicht nutzen, denn das sagt absolut nichts aus denn du musst da den gemachten RAM mit dazuaddieren. Verwende doch am besten mal einen meiner folgenden Sysinfo Skripte:

Code: Alles auswählen

string temp;
system.Exec("cat /sys/class/thermal/thermal_zone0/temp | sed 's/.\{3\}$/.&/'", &temp);
if(temp != "") {
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU_Temp").State(temp);
}
system.Exec("cat /proc/loadavg | cut -d' ' -f-3 | tr -d '\n'", &temp);
if(temp != "") {
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU_Load").State(temp);
}
system.Exec("cat /proc/meminfo | egrep 'Mem(Total|Available)' | tr -d '\n' | awk '{ printf(\"%.1f\", 100-$4/$2*100) }'", &temp);
if(temp != "") {
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("RAM_Usage").State(temp);
}
system.Exec("awk '{s=int($1);d=int(s/86400);h=int(s % 86400/3600);m=int(s % 3600 / 60); printf \"%d Tage, %dh %d min\", d, h, m}' /proc/uptime", &temp);
if(temp != "") {
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYS_Uptime").State(temp);
}
system.Exec("/usr/bin/ntpq -pn | grep '*' | awk '{print $9}'", &temp);
if(temp != "") {
  dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYS_NTPOffset").State(temp);
}
Das sollte alles im Grunde fast genauso berechnen/ermitteln wie deins. Lediglich den Memory lass ich dort als Prozentuale Ausnutzung berechnen was IMHO mehr Sinn macht als das was du da versuchst zu vergleichen.
RaspberryMatic 3.51.6.20200621 @ ESXi mit ~180 HomeMatic Geräten + ioBroker – GitHubGitHub Sponsors / PayPalTwitter

Benutzeravatar
klana
Beiträge: 580
Registriert: 08.02.2015, 08:37

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von klana » 19.12.2018, 17:49

jmaus hat geschrieben:
19.12.2018, 13:59
Ok, Dank. MemFree kannst du zu dem Zwecke wie du es nutzt wirklich nicht nutzen, denn das sagt absolut nichts aus denn du musst da den gemachten RAM mit dazuaddieren.
...
Das sollte alles im Grunde fast genauso berechnen/ermitteln wie deins. Lediglich den Memory lass ich dort als Prozentuale Ausnutzung berechnen was IMHO mehr Sinn macht als das was du da versuchst zu vergleichen.

Hallo Jens,

Danke schön...hier die Ausgaben aus deinem Script.
Die Variablen hab ich vom Namen angepasst, damit ich alle zusammen habe in der Anzeige.

Einige Fragen habe ich noch:
1. Was ist "gemachter RAM"?
2. Was ist NTPOffset?

Bildschirmfoto 2018-12-19 um 17.47.09.jpg
Gruß
Klana
Es ist nett, wichtig zu sein. Aber es ist wichtiger, nett zu sein.

mactoolz
Beiträge: 298
Registriert: 02.08.2015, 14:53

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von mactoolz » 19.12.2018, 17:59

NickHM hat geschrieben:
11.12.2018, 23:33
mactoolz hat geschrieben:
11.12.2018, 22:08
NickHM hat geschrieben:
11.12.2018, 13:47
mactoolz hat geschrieben:
11.12.2018, 12:07

wie ist denn der Stand mit den Problemen im HmIP Bereich.
Hallo

könntest Du die Frage evtl. noch einmal etwas allgemeiner formulieren?
es gab eine Meldung dazu das es wohl Probleme mit HmIP gibt und niemand weiß wieso es die Probleme nur im HmIP BEreich gibt.
Weil meine HmIP Geräte versuchen unentwegt zu senden und teilweise auch auf Störung gehen.

Gruß
Vielen Dank. Das ist jetzt deutlich allgemeiner und nichts sagender. Damit besteht keine Gefahr mehr, dass jemand antwortet.
tja was soll ich sagen, da der Thread ewig lang ist, wirst du meine Ursprungs frage etc. einfach nicht gelesen haben.
Lies einfach den Verlauf nach wenn es dich interessieren sollte ...

Mein Frage bleibt bestehen ob es immer noch Probleme im HmIP BEreich gibt weil alle HmIP Geräte immer noch Probleme verursachen bzw. einfach teilweise nicht senden bzw. empfangen können

Zoologe
Beiträge: 5
Registriert: 04.06.2015, 00:10

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von Zoologe » 19.12.2018, 19:10

ich habe festgestellt, dass in der neuen Raspberrymatic Software (3.41.11.20181126 Raspberry PI3+) sich die 1. Dimmaktor Kanäle(CH:8) der BSL nicht mit einem Programm ansprechen lassen. Die Kanäle CH:12 sind auswählbar. In der Geräteliste werden diese korrekt angezeigt.
Testweise bin ich zurück auf 3.37.8.20181026. Hier funktioniert es korrekt.
Jemand eine Idee ?
Dankeschön

stan23
Beiträge: 1146
Registriert: 13.12.2016, 21:14
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Altmühltal
Hat sich bedankt: 189 Mal
Danksagung erhalten: 112 Mal
Kontaktdaten:

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von stan23 » 19.12.2018, 19:38

klana hat geschrieben:
19.12.2018, 17:49
1. Was ist "gemachter RAM"?
Das sollte wohl gecachter RAM heißen.
Linux lädt quasi schon Dinge voraus, die es glaubt mal brauchen zu können. Wenn sie tatsächlich gebraucht werden, ist das positiv weil sie eben schon im Arbeitsspeicher liegen. Wenn der Speicherplatz anderweitig gebraucht wird, kann der gecachte Bereich verworfen werden ohne dass es weh tut.

Das spekulative Laden im Voraus (immer in den nächst-schnelleren Speichertyp) ist eines der hauptsächlichen Mittel um die Geschwindigkeit zu erhöhen.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

Benutzeravatar
klana
Beiträge: 580
Registriert: 08.02.2015, 08:37

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von klana » 19.12.2018, 20:02

Hallo stan23,

die Rechtschreibkorrektur ist manchmal wirklich "doof" :mrgreen:

"gecachter RAM" ist natürlich besser verständlich.
Danke für die Ausführungen :!:

Ich hoffe nur das dieser auch wirklich wieder frei gegeben wird, denn es wird immer noch weniger.
Soviel wie das Ding cacht hab ich gar nicht... :wink:

Gruß
Klana
Es ist nett, wichtig zu sein. Aber es ist wichtiger, nett zu sein.

sissiwup
Beiträge: 265
Registriert: 10.03.2015, 10:54
Wohnort: Süd NDS
Hat sich bedankt: 1 Mal

Re: RaspberryMatic 3.41.11.20181126 – Erfahrungsberichte

Beitrag von sissiwup » 19.12.2018, 21:33

Hallo,

die alten Heizkörperthermostate zicken bei mir.
HM-CC-VD

Alle von einen alten Thermostat (HM-CC-TC) gehen gemeinsam auf kein Empfang (Störung in der CCU).
Sie kommen auch nicht wieder. NAch Neustart der CCU sind sie wieder da (für eine Zeit) um dann wieder in Störung zu gehen.
vd-pic.png
MfG

Sissiwup

--------------------------------------------
CCu3,CCu2Gateway,RaspiGateway,LanGateway
--------------------------------------------

tom57
Beiträge: 11
Registriert: 09.03.2016, 13:08

Firmware Updates mit Raspberrymatic

Beitrag von tom57 » 20.12.2018, 10:34

Hallo,

nachdem ich mit Firmware-Updates der Thermostatventile (HM-CC-RT-DN) auf 1.5. nur Probleme hatte, frage ich mich nun:

Es werden in der RaspberryMatic Firmware-Updates angeboten, welche ich in der EQ3 Downloadseite nicht finde.
Es gibt dann auch keine Dokumentation der Änderungen! Oder muss ich woanders suchen?

Der Thermostat HM-CC-RT-DN steht dort nach wie vor unter 1.4. - RaspberryMatic bietet 1.5 an.
Die Wetterstation HmIP-SWO-B steht dort mit FW 1.0.14 während RaspberryMatic mir den Update auf 1.0.18 anbietet.
Woher nimmt Raspberrymatic die Firmware-Updates und wo finde ich die Dokumentation zu den Änderungen?

Der Firmware-Update einzelner HM-IP Geräte (z.B. Wetterstation) dauerte beim letzten Mal 2-3 Tage.
Woran könnte das liegen?

Insgesamt frage ich mich, ob ich die angebotenen FW-Updates nicht besser ignoriere, da diese in den letzten 2 Jahren nur Probleme bereitet haben.

Grüße
Thomas

Gesperrt

Zurück zu „RaspberryMatic“