Hoher DutyCycle und nicht endender Firmwareupload

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

FCBazi09
Beiträge: 23
Registriert: 23.03.2022, 08:30
System: CCU
Wohnort: Bergkirchen
Hat sich bedankt: 12 Mal

Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von FCBazi09 » 30.01.2024, 10:54

Hallo Gemeinde,
da ich in meinem System (CCU3 und zwei HAP`s mit aktueller RasperryMatic) durchaus nicht wenige Geräte verwende (z.Zt. 185 aktive Geräte)
habe ich ich natürlich immer wieder mit langen Firmwareuploads Ladezeiten und Upload Abbrüche Probleme.
Ich habe mir den AskSkinAnalyser Version 1.8.0 von der GitHub Seite heruntergeladen, da ich die Linux-Variante auf einem RPi4 nicht zum laufen brachte bin ich auf einen alten Windows 10 PC ausgewichen. Nach Installation und Konfiguration funktioniert soweit aucht das mithören des Datenverkehrs. Allerdings sehe ich nur Geräte mit einer sieben oder achtstelligen Nummer mit der ich keine Beziehung zu meinen Geräten in der CCU3 verbinden kann.
Hat jemand eine Idee was ich z.Zt. noch falsch konfiguriert habe.
Ich würde gerne anhand der Analyse meines Funkverkehrs Geräte identifizieren die Teil dieses Problems sind.
Dateianhänge
AskSkinAnalyser_Screenshot 2024-01-30 100707.jpg
CCU3_DC_CS_Screenshot 2024-01-30 101658.jpg
Zuletzt geändert von Roland M. am 30.01.2024, 11:18, insgesamt 1-mal geändert.
Grund: Thema verschoben

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

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von Xel66 » 30.01.2024, 11:16

FCBazi09 hat geschrieben:
30.01.2024, 10:54
Hat jemand eine Idee was ich z.Zt. noch falsch konfiguriert habe.
Auf Deiner CCU fehlt noch ein Programm, welches die entsprechenden Gerätenamen in einer Sytemvariable (AskSinAnalyzerDevList) zusammenstellt und vermutlich die Konfiguration im Analyzer, der diese Informationen von der CCU abfragt.

Gruß Xel66
Zuletzt geändert von Xel66 am 30.01.2024, 11:23, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
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

Benutzeravatar
Horst Henning
Beiträge: 466
Registriert: 20.07.2019, 12:58
System: CCU
Hat sich bedankt: 12 Mal
Danksagung erhalten: 30 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von Horst Henning » 30.01.2024, 11:22

folgendes Skript in einem Programm z.B. 1x am Tag laufen lassen:

Code: Alles auswählen

string svDevList = "AskSinAnalyzerDevList";
string svAlarm   = "AskSinAnalyzerAlarm";

string HmIPBroadcastName           = "HmIP Multicast All Devices";
string HmIPRoutersName             = "HmIP Multicast All Routers";
string HmIPAccessControllersName   = "HmIP Multicast All AccessControllers";
string HmIPThermostatsName         = "HmIP Multicast All Thermostats";
string HmIPSmokeSensorsName        = "HmIP Multicast All Smoke Sensors";
string HmIPPermanentListenerName   = "HmIP Multicast All Permanent Listener";
string HmIPBurstListenerName       = "HmIP Multicast All Burst Listener";
string HmIPTripleBurstListenerName = "HmIP Multicast All Triple Burst Listener";
string HmRFBroadcastName           = "HMRF Broadcast";

object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);

!Alarmvariable anlegen
object alarmObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svAlarm);

if(!alarmObj) {      
  alarmObj = dom.CreateObject(OT_ALARMDP);
                                                                                                                               
  alarmObj.Name(svAlarm);                                                                     
  alarmObj.ValueType(ivtBinary);                                                               
  alarmObj.ValueSubType(istAlarm);                                                             
  alarmObj.ValueName0("nicht ausgelöst");                                   
  alarmObj.ValueName1("ausgelöst");                                      
  alarmObj.ValueUnit("");                                                                    
  alarmObj.AlType(atSystem);                                                                   
  alarmObj.AlArm(true);                                                                        
  alarmObj.AlSetBinaryCondition();                                                             
  alarmObj.State(false);                                                                       

  svObjects.Add(alarmObj.ID());

  dom.RTUpdate(0);                                                                          
  
  WriteLine("Alarm-Variable "#svAlarm#" angelegt.\n");                                                                                        
}  else {
  WriteLine("Alarm-Variable "#svAlarm#" existiert.\n");
}

!Systemvariable anlegen, falls sie nicht bereits existiert
object svObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svDevList);

if (!svObj){
  svObj = dom.CreateObject(OT_VARDP);

  svObj.Name(svDevList);
  svObj.ValueType(ivtString);
  svObj.ValueSubType(istChar8859);

  svObj.DPInfo("used by AskSinAnalyzer");
  svObj.ValueUnit("");
  svObj.State("");
  svObj.Internal(false);
  svObj.Visible(false);

  svObjects.Add(svObj.ID());

  dom.RTUpdate(0);
  WriteLine("Variable "#svDevList#" angelegt.\n");
} else {
  WriteLine("Variable "#svDevList#" existiert.\n");
}

!phys. Zentralen-Adresse HmIP auslesen
string stdout;
string stderr;
system.Exec("echo $((0x`grep Adapter.1.Address /etc/config/hmip_address.conf|awk -F'\=' {'print $2'}`))", &stdout, &stderr);
WriteLine(stdout);

integer HmIPCentral = stdout.ToInteger();

!alle Geräteadressen, Seriennummer und Namen erfassen
integer tstamp = system.Date("%F %X").ToTime().ToInteger();
string sDevId;
string data;
string metaData;
string result = "{\"created_at\":"#tstamp#",\"devices\":["#
     "{\"address\":15728641,\"serial\":\"00000000000000\",\"name\":\""#HmIPBroadcastName#"\"},"#
     "{\"address\":15728642,\"serial\":\"00000000000000\",\"name\":\""#HmIPRoutersName#"\"},"#
     "{\"address\":15728643,\"serial\":\"00000000000000\",\"name\":\""#HmIPAccessControllersName#"\"},"#
     "{\"address\":15728644,\"serial\":\"00000000000000\",\"name\":\""#HmIPThermostatsName#"\"},"#
     "{\"address\":15728645,\"serial\":\"00000000000000\",\"name\":\""#HmIPSmokeSensorsName#"\"},"#
     "{\"address\":15728769,\"serial\":\"00000000000000\",\"name\":\""#HmIPPermanentListenerName#"\"},"#
     "{\"address\":15728770,\"serial\":\"00000000000000\",\"name\":\""#HmIPBurstListenerName#"\"},"#
     "{\"address\":15728771,\"serial\":\"00000000000000\",\"name\":\""#HmRFBroadcastName#"\"},"#
     "{\"address\":0,\"serial\":\"0000000000\",\"name\":\""#HmRFBroadcastName#"\"},";

foreach(sDevId, root.Devices().EnumUsedIDs())
{
  var dev= dom.GetObject(sDevId);
  if ( true == dev.ReadyConfig() )
  {
    metaData = dev.MetaData("DEVDESC");
    foreach (data, metaData.Split(",")) {
      if (data.Substr(0,10) == "RF_ADDRESS") {
        data = data.Replace("RF_ADDRESS:","");
        if (data != "0") {
	  string ser = dev.Address();
	  if ((HmIPCentral > 0) && (data == HmIPCentral)) { ser = "HmIP-RF"; }
          result = result # "{\"address\":" #data#",\"serial\":\""#ser#"\",\"name\":\""#dev.Name()#"\"},";
        }
      }
    }
  }
}
result = result # "]}";
result = result.Replace("},]","}]");


dom.GetObject(ID_SYSTEM_VARIABLES).Get(svDevList).State(result);
Write(result);

!Abfrage im Browser mit http://ccu2:8181/ret.exe?ret=dom.GetObject(ID_SYSTEM_VARIABLES).Get("AskSinAnalyzerDevList").Value()
Habe ich im Internet gefunden.

MichaelN
Beiträge: 9686
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von MichaelN » 30.01.2024, 13:08

Dein CarrierSense ist auch relativ hoch. Funkstörungen verbessern die Update Geschwindigkeit auch nciht.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++


MichaelN
Beiträge: 9686
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von MichaelN » 30.01.2024, 13:23

Verrückt, was man alles so im Internet finden kann
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Horst Henning
Beiträge: 466
Registriert: 20.07.2019, 12:58
System: CCU
Hat sich bedankt: 12 Mal
Danksagung erhalten: 30 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von Horst Henning » 30.01.2024, 14:15

MichaelN hat geschrieben:
30.01.2024, 13:23
Verrückt, was man alles so im Internet finden kann
?

bei mir folgende Situation: relativ häufige Kommunikationsstörungen bei bestimmten HM-Geräten (ca. 4 von 10), so gut wie überhaupt keine bei ca. 40 HmIP-Geräten.

Gelegentlich sehe ich, wenn ich auf die Startseite der CCU gehe, den Balken des DC für 1/2 Sekunde im roten Bereich (normal um 20%). Um das weiter einzugrenzen habe ich mir den CUL-Stick für AskSin gekauft, alles installiert. Funktioniert. Leider komme ich da nicht so recht weiter. Es gibt kein Gerät, dass sehr viel funkt. Erstaunlicherweise machen PS und PSM auch wenn sie nicht eingeschaltet sind einen relativ hohen DC.

Schön wäre wenn bei den einzelnen Geräten der DC über einen gewissen Zeitraum angezeigt würde. In Zahlen wird ja auch der Gesamt-DC nicht dargestellt. Oder gibt es etwas, was ich noch nicht gefunden habe, MichaelN?

Matsch
Beiträge: 5455
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von Matsch » 30.01.2024, 15:27

Horst Henning hat geschrieben:
30.01.2024, 14:15
Gelegentlich sehe ich, wenn ich auf die Startseite der CCU gehe, den Balken des DC für 1/2 Sekunde im roten Bereich (normal um 20%).
Schon mal auf die naheliegende Idee gekommen, dass das Anzeigeelement kurz nach dem Öffnen der Seite nur noch nicht aktualisiert ist?
Trotzdem viel Spaß am rätseln.

Benutzeravatar
Horst Henning
Beiträge: 466
Registriert: 20.07.2019, 12:58
System: CCU
Hat sich bedankt: 12 Mal
Danksagung erhalten: 30 Mal

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von Horst Henning » 30.01.2024, 15:45

Matsch hat geschrieben:
30.01.2024, 15:27
Schon mal auf die naheliegende Idee gekommen, dass das Anzeigeelement kurz nach dem Öffnen der Seite nur noch nicht aktualisiert ist?
Trotzdem viel Spaß am rätseln.
Logisch

also war er mal hoch. Sollte man das "Warum?" nicht bei den Aufzeichnungen von AskSin sehen? Oder wozu ist das gut?

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Hoher DutyCycle und nicht endender Firmwareupload

Beitrag von jp112sdl » 30.01.2024, 15:56

Horst Henning hat geschrieben:
30.01.2024, 15:45
also war er mal hoch.
Nein. Das liegt am Javascript im Hintergrund, wenn der Balken noch nicht fertig initialisiert wurde.
Horst Henning hat geschrieben:
30.01.2024, 15:45
Sollte man das "Warum?" nicht bei den Aufzeichnungen von AskSin sehen?
Und wo nichts war, ist auch nichts zu sehen

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“