HM-Analyser
Beschreibung des Analyse-Tools
Der HM-Analyser ist Bestandteil der HM-Internals.
Download hier: https://forum.fhem.de/index.php/topic,82923.msg750766.html#msg750766
Was kann der HM-Analyser?
Der HM-Analyser ist ein umfangreiches Analyse-Tool für verschiedene Bereiche der CCU.
- integrierter SysLog-Server: Live-Anzeige / Speicherung / Weiterleitung an weitere SysLog-Server - mit umfangreicher Filterung
- Anzeige und Änderung der SysLog-Einstellungen der CCU direkt aus der Anwendung möglich.
- zyklische Statusabfragen für zum Beispiel DutyCycle oder Zeitmodulausfälle
- eigene zyklische Abfragen konfigurierbar
- zyklische Abfrage des Systemprotokolls mit verschiedenen Darstellungsformen und erweitertem Anzeigeumfang
- Speicherung und Auswertungsmöglichkeit zyklischer Abfragen
- Analyse und Reparatur von CCU-Problemen wie Geistervariablen
- Wiederherstellung "verlorener" internen Systemvariablen (z.B. Anwesenheit 950)
- Abfrage verschiedener Systemzustände wie Speicherauslastung oder laufende Prozesse der CCU
- und vieles mehr...
Wiki-Beiträge: (Erklärungen / Beispiele)Liste der vordefinierten einfachen Abfragen des HM-Analyser (https://forum.fhem.de/index.php/topic,88065.msg834233.html#msg834233)
Guten Abend BadenPower,
ich habe heute einmal den Analyser testen können.
Unter dem Reiter:
Analyse / Reperatur
- Reiter:
Objekte -> Objekte Listenzuordnung --> Analyse
ergab diese, dass 4 Zuordnungsfehler gefunden wurden.
Wie wäre die weitere Vorgehensweise um an diese Zuordnungfehler zu kommen und diese zu beheben?
BG .Keks
Hallo .Keks,
poste einmal die komplette Ausgabe der Analyse, damit ich sehen kann, welche Objekte wo und warum nicht zugeordnet sind.
Da die Zuordnung abhängig davon ist, ob es überhaupt zuordnungsfähige Objekte sind gibt es für diese Analyse keine automatische Reparaturfunktion.
Die Reparatur können wird dann aber bequem per HM-CodeEditor machen.
Habe Dir auch einmal die aktuelle Entwicklungsstufe der HM-Internals geschickt, dort sind noch mehr Analysen und Reparaturfunktionen enthalten.
viele Grüße
BadenPower
.
Hallo BadenPower,
anbei die komplette Ausgabe mit der aktualisierten Version:
Zuordnungsprüfung:
gestartet: 07.09.2018 05:50:37
ReGaHss-Version: R1.00.0388.0128
Objekt 4290 svEnergyCounter_4278_0001D3C992ABEE:6 vom Typ VARDP nicht in der Systemvariableliste vorhanden.
Objekt 4291 svEnergyCounterOldVal_4278 vom Typ VARDP nicht in der Systemvariableliste vorhanden.
Objekt 21068 svEnergyCounterOldVal_21060 vom Typ VARDP nicht in der Systemvariableliste vorhanden.
Objekt 21069 svEnergyCounter_21060_000895699E6026:5 vom Typ VARDP nicht in der Systemvariableliste vorhanden.
Anzahl verwendeter IDs: 6994
Es wurden folgende Objekttypen geprüft:
Objekte Typ OT_ALARMDP: 69
Objekte Typ OT_CALENDARDP: 32
Objekte Typ OT_CALENDARDPS: 1
Objekte Typ OT_CHANNEL: 135
Objekte Typ OT_CHANNELS: 1
Objekte Typ OT_COMMDP: 2
Objekte Typ OT_CONDITION: 1532
Objekte Typ OT_CONDITION Program: 89
Objekte Typ OT_CONDITION Rule: 1284
Objekte Typ OT_CONDITION Other: 159
Objekte Typ OT_DESTINATION: 502
Objekte Typ OT_DEVICE: 16
Objekte Typ OT_DEVICES: 1
Objekte Typ OT_DOM: 1
Objekte Typ OT_DPS: 2
Objekte Typ OT_ENUM: 20
Objekte Typ OT_ENUM etFunction: 14
Objekte Typ OT_ENUM etRoom: 15
Objekte Typ OT_FAVORITE: 10
Objekte Typ OT_HISTORYDP: 11
Objekte Typ OT_HSSDP: 562
Objekte Typ OT_INTERFACE: 3
Objekte Typ OT_INTERFACES: 1
Objekte Typ OT_IPDP: 1
Objekte Typ OT_MAPDP: 90
Objekte Typ OT_OBJECT: 5
Objekte Typ OT_POPCLIENT: 1
Objekte Typ OT_PROGRAM: 89
Objekte Typ OT_ROOT: 1
Objekte Typ OT_RULE: 502
Objekte Typ OT_RULES: 1
Objekte Typ OT_SCONDITION: 2116
Objekte Typ OT_SDESTINATION: 761
Objekte Typ OT_SMTPSRV: 1
Objekte Typ OT_TIMERDP: 89
Objekte Typ OT_USER: 6
Objekte Typ OT_USERS: 1
Objekte Typ OT_VARDP: 400
Es wurden 4 Zuordnungsfehler gefunden.
beendet: 07.09.2018 05:50:54
Dauer: 17 Sekunden
----- Vorgang beendet -----
Die SysVars sind von den gescheiterten Versuchen unter ccu2 FW 2.35.16 einen weiteren HmIP-PSM einzubringen.
HmIP-PSM angelernt, FW-Update auf 2.6.2 gemacht, Werksreset und wieder angelernt.
DC stieg um 15% an
DV wurde angelegt
Systeminternes Programm (prgEnergyConter_ISE-ID_SERIAL:Channel) wurde nicht angelegt
SysVars wurden ebenfalls nicht angelegt.
Ein HmIP-FSM (unter ccu2 FW 2.35.16) funktioniert tadellos
Ein unter ccu2 FW 2.25.22 eingebundener HmIP-PSM ebenfalls
Beste Grüße .Keks
Das sind Variablen, die mit einem Kanal des Gerätes verknüpft werden. Damit hat HMCCU auch so seine Probleme.
Interessanterweise haben meine beiden HmIP-PSMs die Variablen nicht zugeordnet, trotz aktueller Firmware.
Hallo .Keks,
bei den gefundenen Objekten handelt es sich ziemlich sicher um Datenmüll, welcher getrost gelöscht werden kann.
Um ganz sicher zu gehen kannst Du einmal prüfen, welche IDs momentan die 2 Geräte haben, von denen die Überreste stammen.
Dazu nimmst Du den HM-Investigator und wählst rechts die Reiter "Komplexe Abfragen" -> "Sucheinstellungen" -> "Gerät" aus.
In der Gruppenbox "Gerät ermitteln" gibst Du bei "suchen nach" (Bild1-Pfeil1) die Geräteadresse eines der beiden Geräte ein.
In der gleichen Box wählst Du "Suche über Geräteadresse (Seriennummer)" (Bild1-Pfeil2) aus.
Unten auf der Seite wählst Du aus der Auswahlbox "Gerät" (Bild1-Pfeil3) und startest die Suche mit der Schaltfläche "Abfrage starten" (Bild1-Pfeil4). Da wir nur die ID benötigen, kannst Du alle anderen Einstellungen lassen wie sie sind.
Als Ergebnis solltest Du nun bei "Ausgabe formatiert" den Gerätenamen, die ID (Bild1-grüner Kreis) und den Objekttyp (DEVICE) sehen.
Du kannst auch noch bei "Komplexe Abfragen" -> "Sucheinstellungen" -> "Objekt" (Bild2) diese zwei IDs: 4278 / 21060 eingeben und prüfen, ob es diese Objekte noch gibt. Es kann aber auch sein, dass die IDs bereits anderen Objekten zugeordnet wurden.
Danach kannst Du im HM-CodeEditor per Skriptanweisung die vier Objektleichen entfernen:
dom.DeleteObject(4290);
dom.DeleteObject(4291);
dom.DeleteObject(21068);
dom.DeleteObject(21069);
Falls Du Ausgaben erhälst, welche etwas anderes als erwartet zurückgeben, dann poste diese bitte, bevor Du den Löschvorgang startest.
viele Grüße
BadenPower
.
Guten Abend BadenPower,
ich habe nach Deinen Anweisungen im HM-Investigator nach den Objekten gesucht und der HM-Investigator hat "nix" gefunden.
Im anschließenden Lauf mit dem HM-CodeEditor wurden auch keine Fehler mehr gefunden.
Ich kann die Möglichkeiten Deines Werkzeugs gar nicht abschätzen.
Könnten wir dazu nicht ein HowTo starten.
In Verbindung mit Beispielen wäre das ggf. auch für andere Nutzer Deines Werkzeugs nützlich.
An dieser Stelle noch einmal vielen Dank für Deine Arbeit in der Entwicklung dieses Werkzeugs und der kostenlosen Bereitstellung!
Man darf ja nicht vergessen, dass dazu entsprechendes Wissen um die Rega vorhanden sein muss!
Beste Grüße
.Keks
Hallo .Keks,
perfekt.
Allerdings ist Dir bei der Prüfung des Gerätes (Bild1 von Dir) ein kleiner Fehler unterlaufen.
Statt der Geräteadresse 000895699E6026 (Seriennummer) hast Du dort die ID 21060 eingetragen.
Wenn das Gerät noch angelernt ist, dann sollte dort eigenlich eine Ausgabe kommen.
Natürlich kannst Du das Gerät in der Gerätesuche auch über ID suchen, dann mußt Du aber "Suche über ID" oder "Suche über Name oder ID" auswählen und nicht "Suche über Geräteadresse (Seriennummer)"
Zitat von: .Keks am 07 September 2018, 20:41:00
Könnten wir dazu nicht ein HowTo starten.
In Verbindung mit Beispielen wäre das ggf. auch für andere Nutzer Deines Werkzeugs nützlich.
Gerne doch.
Das ist eine gute Idee und wird jedem weiterhelfen.
Nimm Dir einfach einmal die einzelnen Teile Stück für Stück vor. Bei Unklarheiten, egal wie klein oder groß oder bei Unwissenheit über die Möglichkeiten einfach eine Frage dazu stellen.
Ich werde das Ganze dann Anhand von Screenshots erklären und auf der 1. Seite der Threads für die entsprechenden Module eine "Wiki-Linkliste" einführen und pflegen. Dann muss man nur die entsprechende Frage auf der 1. Seite im 1. Post suchen und kommt dann gleich zu der Erklärung. Und wenn eine Erklärung nicht vorhanden ist, dann kann derjenige ja auch wieder eine Frage stellen.
Da freue ich mich schon darauf.
Aber mitmachen kann und darf natürlich jeder.
viele Grüße
BadenPower
.
Hallo BadenPower,
der HM-Investigator hatte keine Fehler ausgegeben.
Frage mich nur, wie ich jetzt den HmIP-PSM ohne Fallstricke in die ccu2 mit der aktuellen Firmware bekomme.
Aber das soll die GT aus Leer klären, habe 3 Versuche hinter mir.
Das mit HowTo ist klasse.
Fangen wir mit dem HM-Analyser an, gehen in ein Beispiel (Analysefunktionen) und gehen dann in den HM-Investigator und HM-CodeEdtor über (wie in meinem Fall)?
So wären die einzelnen Werkzeuge in Nutzung und Möglichkeit IMHO deutlicher.
viel Güße
.Keks
Wiki-Beitrag:
Liste der vordefinierten einfachen Abfragen des HM-Analyser
Hallo .Keks,
können wir gerne in der Reihenfolge machen.
Ich denke dass der 1. Reiter des HM-Analysers keinerlei Erklärungen bedarf, ausser man hat Schwierigkeiten die Ausgaben der vordefinierten Abfragen zu deuten.
Liste der vordefinierten einfachen Abfragen des HM-Analyser:
CCU Auslastung
CCU Energiekosten
CCU Firmware-Version
CCU Funkadresse
CCU Liste laufender Prozesse
CCU Seriennummer
CCU Sicherheitsschlüssel
CCU Speicherinfos
CCU Uptime
Inventur
ReGaHss - CacheInfo()
ReGaHSS - Anzahl verwendeter IDs laut Belegung
ReGaHSS - Liste verwendeter IDs laut Belegung
ReGaHSS - Prüfung Skriptvariabletypen
ReGaHSS - Version
Systemprotokoll - Rohdaten
Systemprotokoll - Anzahl Einträge
XMLRPC-Handlers
Erstre Seite passt und bedarf wirklich keinerlei Erklärung
Aber der Punkt "Inventur" gibt ja auch die internen Systemvariablen aus:
Über die UI ist dort nicht komfortabel dran zu kommen, zumal das Auswahlfenster der SysVars ja nicht gerade "üppig" ist.
Kommen wir da mit dem HM-Investigator nicht komfortabler dran?
Zitat von: .Keks am 07 September 2018, 22:42:51
Aber der Punkt "Inventur" gibt ja auch die internen Systemvariablen aus:
Über die UI ist dort nicht komfortabel dran zu kommen, zumal das Auswahlfenster der SysVars ja nicht gerade "üppig" ist.
Kommen wir da mit dem HM-Investigator nicht komfortabler dran?
Das geht mit dem HM-Investigator sehr bequem und auch auf mehrere Weisen, ja nach dem welche Infos man benötigt.
Werde dazu zwei Beiträge im HM-Investigator-Thread aufmachen und diese Möglichkeiten bildlich darstellen.
Das wird aber wahrscheinlich nicht vor Ablauf des Wochenendes werde, da ich dazu noch etwas weiter ausholen muß.
bis dann
BadenPower
.
Erklärung zum Auslesen der "internen Systemvariablen" im Thread des HM-Investigators unter dem folgeneden Post hinzugefügt:
https://forum.fhem.de/index.php/topic,82954.msg834606.html#msg834606
Hallo BadenPower,
ich habe auch mal vorsichtig angefangen.... das gute vorweg... ccu2 läuft noch ;D ....besser.
Kurze Frage: Was ist der Unterschied der beiden auswählbaren Punkte? siehe Bild
Gruß Tino
Hallo Tino,
willkommen hier im wunderschönen "grünen Forum".
Du meinst bestimmt die Auswahlmöglichkeit zwischen "CCU-konforme" und "HM-Internals konforme"- "Analyse/Reparatur?
Bei der "CCU-konforme Analyse/Reparatur" werden die Objekte nach den Regeln der CCU untersucht und repariert, also so, wie sie original sein sollten.
Die "HM-Internals-konforme Analyse/Reparatur" berücksichtig geänderte Objekteigenschaften und Erweiterungen, welche zum Beispiel vom HM-Administrator gesetzt oder erzeugt werden, um zusätzliche Funktionalität zu erzeugen, welche in der CCU-WebUI nicht vorhanden sind.
viele Grüße
BadenPower
.
Moin BadenPower,
Danke für die wie immer hilfreiche Erklärung.
Gruß Tino
Zitat von: BadenPower am 23 Oktober 2018, 23:33:42
...
Du meinst bestimmt die Auswahlmöglichkeit zwischen "CCU-konforme" und "HM-Internals konforme"- "Analyse/Reparatur?
Bei der "CCU-konforme Analyse/Reparatur" werden die Objekte nach den Regeln der CCU untersucht und repariert, also so, wie sie original sein sollten.
Die "HM-Internals-konforme Analyse/Reparatur" berücksichtig geänderte Objekteigenschaften und Erweiterungen, welche zum Beispiel vom HM-Administrator gesetzt oder erzeugt werden, um zusätzliche Funktionalität zu erzeugen, welche in der CCU-WebUI nicht vorhanden sind.
viele Grüße
BadenPower
.
Guten Abend BadenPower,
ich habe ja noch das Analysetool in Version 1.0.0b ohne Erweiterungen wie oben beschrieben in Version 1.0.2b,
aaaaber
kann es sein dass in 1.0.0.b bereits schon "Vorläufer" der 1.0.2b tätig waren (obwohl Repaeratur noch in 1.0.0b "Reparatur" ausgegraut?
Mich macht zur Zeit (wenn denn Zeit ist... Du kennst meine Sanierungssituatiuon) folgenses ein bissel stutzig:
Ich habe einen HmIP-SMI Bewegungsmelder seit Anfang des Jahres auf Test-CCU2.
Er ist also durch unterschiedliche CCU-Firmwareversionen "mitgezogen".
Nun habe ich einen weiteren HmIP-SMI in Betrieb genommen (gleicher Firmwarestand wie "Walking BWM") un in der Zwischenzeit mit Deinem Tool gearbeitet.
Dieser meldet sich in der UI gänzlich anders, denn statt 2 Felder zeigt dieser nun 5.....
Diese 3 weiteren Einträge sind "eigentlich" Bestandteil der HmIP-SMI55 Bewegungsmelder, auch nur, wenn der BWM in den Geräteeinstellungen auf "Netzbetrieb" umgeställt
"wäre".
Von den HmIP-SMI55 habe ich 2 Stück, jedoch im "Batteriebetrieb"
Bei dem SMI funktioniert das Feld "Bewegungserkennung ausschalten" jedoch nicht.
Der Button "Reset Status" allerdings funktioniert tadellos und der Sensor springt auf "keine Bewegung erkannt".
K.A. ob das mal wieder von der "Jugend forscht Abteilung" unwissend eingebaut wurde, kann mir jedefalls nicht erklären, woher die zusätzlichen Buttons/Felder in der UI kommen, die der HmIP-SMI
eigentlich nicht haben dürfte.
VG .Keks
Hallo .Keks,
die Analysefunktion der 1.0.0 ist die gleiche wie in der 1.0.2 mit der Einstellung "CCU-konform".
Das nächste General-Update wird so in 2-3 Wochen fällig werden. Tibin hat im Moment den Versionsvorteil eines "Frischlings", da er eine Stable-Entwicklungsversion hat.
Da bei der Analyse aber nichts geändert wird und die Reparaturfunktion bei Dir noch nicht aktiviert ist, ist es unwahrscheinlich, dass die Änderungen durch die Analyse kommen.
Führe einmal die Analyse durch und poste das Ergebnis.
Da ich keine IP-Gräte habe kann ich das Anzeigeverhalten nicht rekonstruieren.
Kannst Du von den 3 betroffene Geräten einmal mit dem HM-Investigator die Datenpunkte aller Kanäle der Geräte auslesen?
Wichtig wären die Datenpunktmethoden:
.Name()
.Enabled()
.Internal()
.Visible()
.Operations()
und die Kanal-Methoden:
.Name()
.Enabled()
.Internal()
.Visible()
Dann kann ich das Ganze einmal mit der Datenpunktdokumentation vergleichen
viele Grüße
BadenPower
.
Guten Morgen,
ich konnte mir das auch nicht vorstellen, aber da das Kompetenzzentrum ja die IP-Dinger meist erst bei der 2. oder 3. Firmwareverion "rund" bekommen (Fiasko bei HmIP-SMO, HmIP-SMI, HmIP-FROLL, Durchgangssensor wartet ja auch noch auf Fix, usw.) vermute ich eher die Beule kommt aus Leer.
Wir hatten ja auch die "Leichen" in der CCU, die von dem HmIP-PSM stammen. Dieser läuft allerdings auch wieder (allerdings nach mehreren Reboots) scheinbar ordentlich.
IP habe ich nur genommen, da die Dinger ja OTAU können und nicht wie die Klassik-Variante eingeschickt werden muss, damit neue Firmware drauf kommt.
Kommt bei der "obersten Heeresleitung" nicht so gut, wenn man die UP-Dosen offen mit fliegender Verdrahtung rumhängen lässt, während die Aktoren eingeschickt sind.
Da kannte ich dieses Forum noch nicht und wie es scheint, ist es über fhem möglich es selbst durchführen zu können (in meinem Fall die HM-Classic UP-Aktoren Rollladen und Dimmer)
Da Du keine IP-Geräte hast, kann ich Dir da gerne die Dinge für Deine weitere Arbeit von meinen Geräten zukommen lassen, sofern Du möchtest.
Machen wir doch wieder ein How-To für das WIKI für die von Dir benötigten Datenpunkte und Kanäle im HM-Investigator
viele Grüße
.Keks
Guten Abend,
nachdem ich die v 1.0.2b des HM-Analysers bekommen habe, kam ich jetzt endlich dazu das Tool in dieser Version zu testen.
Der neue Punkt "Programme" ist absolut genial!
Ich kann da nur mutmaßen, worauf das hinausläuft und das es Bestandteil des HM-Administrators sein wird, aber "Hut ab, Respekt und Anerkennung".
Ein solches Tool würde den Großteil aller Fragen zu "nicht funktionierenden Programmen" vermeiden.
Bin mal gespannt wann es nachgebaut wird.
Hatte letzte Woche einen HmIP-SMI55 mit einem UP-Netzteil ausgestattet und das Luder zickte rum und war weg, nachdem ich den Betrieb auf "Netzbetrieb" in den Geräteeigenschaften stellen wollte.
Die HmIP-SMI's haben zwar die Buttons, aber "Bewegungserkennung ausschalten" kann zwar betätigt werden, hat jdoch keinerlei Auswirkung.
Die HmIP-SMI55, bekommen die zusätzlichen Buttons (Bewegungserkennung ausschalten & Reset Status) ja erst in der UI, wenn diese auf "Netzbetrieb" in den Eigenschaften gestellt werden.
Duch etwas "Stress" habe ich das Dingen einfach verdrängt und während Sanierung achtet man auf andere Dinge, als auf ein nicht mehr aktiven Bewegungsmelder.
Daher im Analyser dann die entsprechenden Einträge in dem zugehörigen Programm (rote Pfeile), da das Dingen ja weg ist.
Jetzt muss ich nur noch herausfinden, was das Kompetenzzentrum aus Leer in den Energy-Counter-Programme der PSM/FSM's hineingebastelt hat.
Wie wäre da jetzt mit dem HM-Investigator die Vorgehensweise (Wiki?)
Viele Grüße
.Keks
Zitat von: .Keks am 30 Oktober 2018, 21:28:05
Der neue Punkt "Programme" ist absolut genial!
Hallo .Keks,
Zitat von: .Keks am 30 Oktober 2018, 21:28:05
Der neue Punkt "Programme" ist absolut genial!
Der wird noch besser, wenn irgendwann alle vorhanden Analysen und Reparaturmechanismen eingebaut sind.
In den beiden Screenshots hast Du noch Programme welchen einen "falschen Operatortyp" als Fehler auswerfen.
Kannst Du da einmal einen Screenshot eines Programmes machen und hier einstellen?
Über den HM-Investigator ist es tatsächlich auch möglich das Programm und dessen Struktur komplett auszulesen.
Dies gehört aber schon in die Klasse gehobener Fortgeschrittener.
Ich dachte ich käme Anfang der Woche dazu, den versprochenen Wiki-Beitrag zu den Geräten mit dessen Kanälen und deren Datenpinkte zu machen, hat mir aber leider nicht gereicht und bis zum Wochenende ist schon wieder alles verplant. Sorry
Den Wiki für das Programmeauslesen würde ich dann gerne hinten anstellen, da dieser auch eben auch die Kinder- und Kindeskinder-Abfragen aufbaut.
Habe aber in Deinem Sceenshot bemerkt, dass ich die zwei Schalflächen für die Analyse der Programmbedingungen und Programmaktionen nicht vollständig deaktiviert habe. Da liegen noch keinen aufrufbaren Funktionen dahinter und sollten daher nicht aktiv werden, wenn irgendeine Abfrage fertig ist..
Das passiert leider, wenn man eine Entwicklungsversion herausgibt.
Da Du auch die Entwicklungsstufe hast, kannst Du vielleicht Dir das einmal anschauen:
https://forum.fhem.de/index.php/topic,82954.msg850332.html#msg850332
Hier hat Tibin ein Problem, wenn er die Formatierungseinstellungen auf "komplette Formatierung" stellt.
Ich kann das Problem leider nicht nachstellen.
viele Grüße
BadenPower
.
Guten Morgen BadenPower,
werde ich heute erst am Abend schaffen, das Problem ggf nachzustellen.
Da gleich im Zuge der Sanierung der Parkettboden zum 2. mal vorbereitet wird und ich heute auch noch ein Fahrzeug für Prüfstand vorbereiten muss.
Wenn die Sanierung abgeschlossen ist, schließe ich mich ein und schmeiß den Schlüssel weg, damit Reccourcen für Erarbeitung des Status "Fortgeschrittener" frei werden ;)
Somit genügend Baustellen neben HM und kein Zeitdruck von meiner Seite.
Viele Grüße
.Keks
Zitat von: .Keks am 30 Oktober 2018, 21:28:05
Jetzt muss ich nur noch herausfinden, was das Kompetenzzentrum aus Leer in den Energy-Counter-Programme der PSM/FSM's hineingebastelt hat.
Ich habe nochmals in meinen Unterlagen geblättert und einige Tests gemacht und komme zu dem Entschluß, dass Du Dir hierum keine Sorgen machen mußt.
Es handelt sich um systeminterne Programme, welche automatisch von der CCU angelegt werden.
Beim Anlegen der Programme werden 3 Flags entgegen den Regeln der Programmerstellung per WebUI gesetzt und so eine problemlose Änderung per WebUI verhindert.
Ich habe die ausgegebene Meldung für diese Art von Programmen vorerst einmal von "Fehler" auf "Info" heruntergestuft.
viele Grüße
BadenPower
.
Zitat von: BadenPower am 02 November 2018, 18:34:16
...
Ich habe die ausgegebene Meldung für diese Art von Programmen vorerst einmal von "Fehler" auf "Info" heruntergestuft.
.
Danke Dir!
viele Grüße
.Keks
Hallo BadenPower,
ich muss mal wieder dein Programm loben. Ohne den Analyser hätte ich den Fehler wohl nicht so schnell gefunden.
Das Setup: gestern im SysLog ein Fehler .....
Nov 9 07:36:00 homematic-ccu2 local0.err ReGaHss: Error: IseSingleCondition::GetValData - invalid object ID [iseCondition.cpp:695]
konnte ich nix mit anfangen....
heute 07:38 der gleiche Fehler, wieder kein Plan, also suchen....
Das einzige was ich mit Google zu diesem Fehler gefunden habe war:
Zitat von: AndiN
Ich schaue mir das Programm an und stelle fest. ODER Systemvariable Wert.... Also da ist die Systemvariable verschwunden
Immer noch kein Plan...
Analyser angeschmissen.... siehe Bild "Analyser"
Programm kontrolliert.... siehe Bild "Prg mit Fehler"
da gibt es tatsächlich eine fehlerhafte ODER-Bedingung mit einer Systemvariablen. Das beunruhigende daran: da stand vorher Geräteauswahl! siehe Bild "Original"
Und dieses Programm läuft schon ewig ohne dass ich da was geändert habe. >:(
Die einzige Änderung die es gestern gab, war dass der Stromzähler getauscht wurde und die ccu2 neu gestartet wurde.
Hast du eventuell eine logische Erklärung für so ein Verhalten?
Gruß Tino
Hallo Tino,
eine logische Erklärung für dieses Phänomen habe ich leider nicht.
Ich sehe nur, dass es nicht um eine originale CCU2-Firmware handelt.
Da aber dieser unvorhersehbare Umstand, vor allem beim Einsatz von RaspberryMatic, bekannt ist, habe ich diese Analysen ausgearbeitet um eben schnell solche Fehler zu finden.
In Deinem 1. Screenshot ist zu erkennen, dass Dir der HM-Analyser 8 Fehler ausgibt. Der 1. Fehler ist leider nicht zu erkennen.
Die Fehlermeldungen der "fehlerhaften Operatorentypen" kannst Du ignorieren, denn diese habe ich inzwischen zu Informationen "degradiert", da es sich um interne vom System angelegte Programme handelt, welche dies so handhaben.
Das Programm "prgEnergyCounter_2616_000855699C3797:7" weist einen Fehler aufgrund einer fehlenden Bedingung in der 1. Bedingungsgruppe auf, welche die 2 anderen "prgEnergyCounter_XXXX" nicht haben.
Hier würden mich einmal die Screenshots dieser Programme interessieren.
Kannst Du auch nochmals nachschauen, was der 1. gefundene Fehler war?
Laut Fehlerausgabe müßtest Du 3 Energieerfassungsgeräte angemeldet haben. Eventuell sind es auch 4, wenn sich der 1. Fehler auch auf ein "Energiezählergerät" bezieht.
Kannst Du einmal die Seriennummer der tatsächlich vorhandenen Geräte gegenchecken?
viele Grüße
BadenPower
.
Hallo BadenPower,
ZitatIch sehe nur, dass es nicht um eine originale CCU2-Firmware handelt
Wie meinst du das? siehe Bild "FWccu2"
ZitatIn Deinem 1. Screenshot ist zu erkennen, dass Dir der HM-Analyser 8 Fehler ausgibt. Der 1. Fehler ist leider nicht zu erkennen
hier nochmal komplett :) siehe Bild "Analyser"
ZitatHier würden mich einmal die Screenshots dieser Programme interessieren
siehe Bild "prgEc2616" mit zugehörigem Skript:
object chn = dom.GetObject('2616');
object oOverflow = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER_OVERFLOW');
object oEnergyCounter = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_2616_000855699C3797:7');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_2616');
boolean overFlowFlag = oOverflow.Value();
real devVal = oEnergyCounter.Value();
real devValMax = oEnergyCounter.ValueMax();
real oldDevVal = oSysVarEnergyCounterOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarEnergyCounter.Value();
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(sysVarVal + diffVal);
siehe Bild "prgEc2623" mit zugehörigem Skript:
object chn = dom.GetObject('2623');
object oOverflow = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER_OVERFLOW');
object oEnergyCounter = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_2623_000855699C3797:7');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_2623');
boolean overFlowFlag = oOverflow.Value();
real devVal = oEnergyCounter.Value();
real devValMax = oEnergyCounter.ValueMax();
real oldDevVal = oSysVarEnergyCounterOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarEnergyCounter.Value();
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(sysVarVal + diffVal);
siehe Bild "prgEc4129" mit zugehörigem Skript:
object chn = dom.GetObject('4129');
object oOverflow = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER_OVERFLOW');
object oEnergyCounter = chn.DPByControl('POWERMETER_PSM.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_4129_000858A994CF05:7');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_4129');
boolean overFlowFlag = oOverflow.Value();
real devVal = oEnergyCounter.Value();
real devValMax = oEnergyCounter.ValueMax();
real oldDevVal = oSysVarEnergyCounterOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarEnergyCounter.Value();
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(sysVarVal + diffVal);
siehe Bild "prgEc17593" mit zugehörigem Skript:
object chn = dom.GetObject('17593');
object oBoot = chn.DPByControl('POWERMETER.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_17593_LEQ0540251:2');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_17593');
var bootFlag = oBoot.Value();
var devVal = oEnergyCounter.Value();
var devValMax = oEnergyCounter.ValueMax();
var oldDevVal = oSysVarEnergyCounterOldVal.Value();
var diffVal = 0.0;
var sysVarVal = oSysVarEnergyCounter.Value();
var tmp_devVal = (devVal.ToString(3).ToFloat() * 100).ToInteger();
var tmp_oldDevVal = (oldDevVal.ToString(3).ToFloat() * 100).ToInteger();
if (oldDevVal <= 0) {
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(devVal);
} else {
if ( ( bootFlag == true ) && ( tmp_devVal < tmp_oldDevVal ) ) {
diffVal = devVal;
} else {
if (tmp_devVal >= tmp_oldDevVal) {
diffVal = devVal - oldDevVal;
}
if (tmp_devVal < tmp_oldDevVal) {
diffVal = (devVal + devValMax) - oldDevVal;
}
}
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(sysVarVal + diffVal);
}
prgEnergyCounter_2616 und 2623 gehören zu einem HmIP-BSM
prgEnergyCounter_4129 gehört auch zu einem HmIP-BSM
prgEnergyCounter_17593 gehört zu einem HM-ES-PMSw1-Pl
wobei bei den ersten beiden wohl ein Fehler existiert, oder?
Gruß Tino
Auf den ersten Blick würde ich sagen, beim ersten Programm wurde die Bedingung geklaut und das Programm automatisch neu angelegt ::)
Bei nochmaliger Überlegung glaube ich aber dass ich dieses Gerät vor längerer Zeit ab und neu anlernen musste, da es nicht mehr reagiert hat.
Könnte mir vorstellen, dass das zugehörige Programm beim Ablernen des Aktors irgendwie nicht gelöscht wurde.
Aber sind alles nur Vermutungen.
Gruß Tino
Hallo Tino,
Zitat von: Tibin am 11 November 2018, 15:47:56
Wie meinst du das? siehe Bild "FWccu2"
Anhand des Screenshots des Programmes aus Deinem vorherigen Post sieht man bei "RolladenWohnzimmerrechts" in der Bedingung den Vergleichsoperator "im Wertebereich / mit Wert". Dies deutet auf einen Patch der Firmware hin.
Zitat von: Tibin am 11 November 2018, 15:47:56
wobei bei den ersten beiden wohl ein Fehler existiert, oder?
Ja, denn die 1. Bedingung sollte auch einen Auslöser enthalten.
ABER:
Da es sich bei 2616 und 2623 um die gleiche Seriennummer handelt läßt dies den Schluß zu, dass das Objekt 2616 eine alte ID ist und nicht mehr zum ursprünglichen Gerät gehört. Da es sich um ein IP-Gerät handelt ist womöglich ein Geräte-Firmwareupdate mit anschliesendem notwendigem Ab- und Anlernen des Gerätes ursächlich.
Prüfe das Vorhandensein des Objektes mit der ID 2616 im HM-Investigator unter "Komplexe Abfragen" -> "Objekte", oder im HM-CodeEditor mit
WriteLine(dom.GetObject(2616));
Die Vermutung ist, dass dieses Objekt nicht mehr existiert oder durch ein anderes Objekt bereits wieder überschrieben wurde.
Leider exisiert immernoch der Bug, dass diese Programme nicht automatisch gelöscht werden.
Falls das Objekt nicht mehr existiert, dann kannst Du das Programm "prgEnergyCounter_2616_000855699C3797:7" auch löschen, da es nicht mehr benötigt wird und beim Reboot unnötig und fälschlicherweise eine Aktion (Skript) ausführt.
Zitat von: Tibin am 11 November 2018, 16:09:42
Auf den ersten Blick würde ich sagen, beim ersten Programm wurde die Bedingung geklaut und das Programm automatisch neu angelegt ::)
Bei nochmaliger Überlegung glaube ich aber dass ich dieses Gerät vor längerer Zeit ab und neu anlernen musste, da es nicht mehr reagiert hat.
Könnte mir vorstellen, dass das zugehörige Programm beim Ablernen des Aktors irgendwie nicht gelöscht wurde.
Aber sind alles nur Vermutungen.
Alles richtig erkannt.
viele Grüße
BadenPower
.
Hallo BadenPower,
mit dem Investigator kommt bei 2616:
HmIP-RF.000855699C3797:5.STATE 2616 HSSDP
und bei 2623:
HmIP-BSM 000855699C3797:7 2623 CHANNEL
Hätte jetzt bei der 2616 irgendwie existiert nicht oder so erwartet... mmh.
Ich würde das Programm trotzdem löschen, oder?
Vielleicht ist das auch der letzte Zustand den das Objekt hatte bevor es gelöscht wurde?
Gruß Tino
PS: habs jetzt gelöscht, dir einen schönen Restsonntag noch. Diese IP-Geräte ::)
Hallo Tino,
beim neu Anlernen des Aktors wurde die "alte" ID 2616 mit einem anderen Objekt überschrieben. Und zwar mit dem Datenpunkt STATE des Kanals 5 des Gerätes mit der Seriennummer 000855699C3797, daher der Name des Objektes: HmIP-RF.000855699C3797:5.STATE
Es handelt sich hierbei zufällig halt genau um das Gerät, wessen Kanal7 auch im Programm eingetragen war.
Löschen des Programms war die richtige Option, da ja beim Anlernen wieder ein neues Programm angelegt wurde mit der neuen ID
viele Grüße
BadenPower
.
Hallo BadenPower,
danke für deine Erklärung!
achso, hatte ich vorhin noch vergessen....
ZitatAnhand des Screenshots des Programmes aus Deinem vorherigen Post sieht man bei "RolladenWohnzimmerrechts" in der Bedingung den Vergleichsoperator "im Wertebereich / mit Wert". Dies deutet auf einen Patch der Firmware hin.
vor dir kann man aber auch nix verheimlichen ;) ;D
Hatte, glaube es war Alchy's Idee mal umgesetzt :)
Gruß Tino
Hallo Tino,
Zitat von: Tibin am 11 November 2018, 18:50:31
..vor dir kann man aber auch nix verheimlichen ;) ;D
8) 8) 8)
Wahrscheinlich hast Du noch folgende (interne) Systemvariablen
svEnergyCounter_2616_000855699C3797:7
svEnergyCounterOldVal_2616
auf Deiner CCU, welche Du auch nicht mehr benötigst und daher löschen kannst.
Vorher prüfen, ob sie einem weiteren Programm zugeordnet sind.
viele Grüße
BadenPower
.
Hallo BadenPower,
also so weit bin ich gekommen.... siehe Bild "Investigator"
aber wie frag ich jetzt 'in welchen Programmen vorhanden'?
Hoffe, das hast du nicht schon irgendwo beschrieben ::)
Und die Anschlussfrage wäre gleich... wie lösche ich die interne Sysvar?
Ist das evtl möglich das in den Analyser mit einzubauen.... falsche SV .... Reparieren (nur ne laienhafte Idee ::))
Gruß Tino
Hallo Tino,
Zitat von: Tibin am 12 November 2018, 12:44:05
also so weit bin ich gekommen.... siehe Bild "Investigator"
aber wie frag ich jetzt 'in welchen Programmen vorhanden'?
Im Prinzip hast Du das schon, da in der Ausgabe bei .DPUsageCount() eine 0 steht und bei .DPEnumUsagePrograms() (wahrscheinlich) eine leere Zeichenkette zurückgegeben wurde, welche also keine IDs enthält.
Wären IDs in dieser Ausgabe vorhanden, dann kannst Du weitere Informationen hierzu anzeigen lassen, in dem Du im Reiter der Ausgabeeinstellung von "Variableobjekt" auf "Elemente" wechselst (Bild im Anhang) und dort im Reiter "Standardauswahl" einen Haken bei der Checkbox "Programme" setzt. Willst Du mehr als die Standardinfos haben, dann mußt Du wie immer, wenn es um Elemente (Kinder) geht, eben noch in der Gruppe "Beschränkungen" den Haken bei "nur Basisinformationen verwenden" entfernen und die eventuell gewünschten Informationen unter den Ausgabeeinstellungen für Programme einstellen.
Zitat von: Tibin am 12 November 2018, 12:44:05
Und die Anschlussfrage wäre gleich... wie lösche ich die interne Sysvar?
Da die nicht benötigte Systemvariable hier die ID 2624 besitzt, einfach den CodeEditor verwenden:
dom.DeleteObject(2624);
Zitat von: Tibin am 12 November 2018, 12:44:05
Ist das evtl möglich das in den Analyser mit einzubauen.... falsche SV .... Reparieren (nur ne laienhafte Idee ::))
Es ist bereits vorgesehen (bzw. eigentlich fast fertig), dass der Analyser in einer zukünftigen Version das Vorhandensein "übergebliebener" interner Programme und internen Systemvariablen prüft und diese dann auch selbsttätig löschen kann.
viele Grüße
BadenPower
.
Hallo BadenPower,
Zitatda in der Ausgabe bei .DPUsageCount() eine 0 steht und bei .DPEnumUsagePrograms() (wahrscheinlich) eine leere Zeichenkette zurückgegeben wurde, welche also keine IDs enthält.
ich war mir nicht sicher, da sich die Ausgabe bei den anderen Abfragen z.B. svEnergyCounter_2623_000855699C3797:7 (die ja definitiv vorhanden ist), auch nicht verändert hat.
Ich habe jetzt deine Einstellungen bei Programm gewählt, aber es hatte sich wieder nix geändert, also weiter probiert bis ich gemerkt habe dass ich zufällig immer die Systemvariablen (meine eigenen) abgefragt habe, wo die zugehörigen Programme als intern markiert sind (für mich zur besseren Übersicht).
Jetzt habe ich bei Programm nix gefunden was auch die internen Programme anzeigt.
hier noch Bilder: Bild1 wird alles angezeigt, Bild2 da sind meine Programme als intern markiert, und bei Bild 3 ist das Programm ja schon werkseitig als Intern markiert.
Danke für den Löschcode :)
Und das...
Zitatdass der Analyser in einer zukünftigen Version das Vorhandensein "übergebliebener" interner Programme und internen Systemvariablen prüft und diese dann auch selbsttätig löschen kann.
ist ja mal wieder der Knaller ;)
Gruß Tino
Hallo Tino,
Zitat von: Tibin am 12 November 2018, 16:17:13
Jetzt habe ich bei Programm nix gefunden was auch die internen Programme anzeigt.
Sorry, mein Fehler.
.DPEnumUsagePrograms() und .DPUsageCount() reagieren ja nur auf "nicht interne" Programme.
Die entsprechenden Sonderabfragen für alle Programmtypen habe ich ja noch gar nicht in die Community-Version des HM-Investigators übertragen.
viele Grüße
BadenPower
.
Na da kann ich ja lange rumprobieren :D :D :D :D :D :D :D :D :D :D
die 2 SVen hab ich gelöscht.
Schönen Abend noch....