HM-Investigator für Windows - Erforscht die CCU

Begonnen von BadenPower, 18 Januar 2018, 17:57:52

Vorheriges Thema - Nächstes Thema

BadenPower

Hallo Tino,

Zitat von: Tibin am 28 Oktober 2018, 21:24:54
bitteschön.
Dankeschön.
Sieht soweit alles normal aus und ich habe die Konstellation nachgestellt und bekomme (leider) ein Ergebnis zurück.

Wenn wir Skype hätten, dann würdest Du jetzt viele viele Fragezeichen auf meiner Stirn stehen sehen, denn ich habe momentan keinen Plan und keinen Ansatzpunkt.

Aber ein paar Fragen habe ich:

1. Was zeigt das Textfeld im Reiter "Abfrage" an?
2. Was zeigt das Textfeld im Reiter "Ausgabe" an?
3. Läuft der Fortschrittbalken unten weiter durch oder bleibt er stehen, wenn das "Einfrieren" passiert?
4. Reagiert die Abbrechen-Schaltfläche?
5. Kannst Du andere Teile der HM-Internals weiter bedienen?

Die Ausgabe der Textfeldern bitte in CodeTags posten.

Danke schon einmal im Vorraus für Deine Mühe.


viele Grüße
BadenPower
.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

Hallo BadenPower,
sorry, hat bisschen gedauert. (Zeit ist momentan bisschen knapp :) )
Zitatdann würdest Du jetzt viele viele Fragezeichen auf meiner Stirn stehen sehen

das kann ich sehr gut nachvollziehen ;)
Wie gesagt, alles funktioniert, nur halt mit vollständiger Formatierung keine Rückmeldung.
Punkt 3: er bleibt stehen
Punkt 4: bei Klick auf das x, siehe Bild 1
Punkt 5: nein
Punkt 1und 2 habe ich gemacht ohne vollständige Formatierung, da ich ja sonst nix kopieren konnte, aber der Text wird noch generiert, also müsste der gleiche sein. Zumindest für mich augenscheinlich.
Punkt 1: boolean lDone = false;
object lObjEnum2;
string lEnum2 = "";
object lObjEnums = dom.GetObject(ID_INTERFACES);
if(lObjEnums)
{
  Write("");
  Write(lObjEnums.Name());
  Write("   " # lObjEnums.ID());
  Write("   " # lObjEnums.TypeName());
  WriteLine("");
  WriteLine("  Liste [via dom.GetObject(ID_INTERFACES).EnumUsedIDs()]");
  foreach(lEnum2,lObjEnums.EnumUsedIDs())
  {
    lObjEnum2 = (dom.GetObject(ID_INTERFACES)).Get(lEnum2);
    if(lObjEnum2)
    {
      lDone = false;
      if(lObjEnum2.Type() == OT_INTERFACE)
      {
        Write("    ");
        Write(lObjEnum2.TypeName());
        Write("   " # lObjEnum2.ID());
        Write("   " # lObjEnum2.Name());
        WriteLine("");
        lDone = true;
      }
      if(lDone == false)
      {
        Write("    ");
        Write(lObjEnum2.TypeName());
        Write("   " # lObjEnum2.ID());
        Write("   " # lObjEnum2.Name());
        WriteLine("");
      }
    }
    else
    {
      WriteLine("      Fehler: Objekt " # lEnum2 # " nicht vorhanden!");
    }
  }
}


Punkt 2:
Root interfaces   9   INTERFACES
  Liste [via dom.GetObject(ID_INTERFACES).EnumUsedIDs()]
    INTERFACE   1007   BidCos-RF
    INTERFACE   1236   VirtualDevices
    INTERFACE   31222   CUxD
    INTERFACE   36530   HmIP-RF
<xml><exec>/regapost.exe</exec><sessionId></sessionId><httpUserAgent></httpUserAgent><lDone>true</lDone><lObjEnum2>HmIP-RF</lObjEnum2><lEnum2>36530</lEnum2><lObjEnums>Root interfaces</lObjEnums></xml>


ZitatDanke schon einmal im Vorraus für Deine Mühe.
Überhaupt kein Problem... solange ich das alles hinkriege, freue ich mich ja auch mal was für dich zu machen.
Aber ist schon komisch, dass es bei dir klappt. Hast du vielleicht bei der Version die ich habe, bei dir schon irgendwas geändert?
Bei mir haben beide Rechner Win 10 Home, Version 1803
Und es ist jedes Mal reproduzierbar.
Gruß Tino

BadenPower

Hallo Tino,

kannst Du Punkt 1 und 2 nochmals anderst testen.

Also erst auf die Reiter "Ausgabe" bzw. "Abfrage" stellen und dann erst die Abfrage starten.
Da das Programm dann einfriert kannst Du den Code ja nicht direkt posten, da mußt Du dann eine Bildschirmcopy machen.

Immer dieses Windows 10. Das macht mehr Probleme als notwendig.
Muss zu meiner Schande gestehen, dass ich die 32/64-Bit-Version, welche Du hast nicht auf Windows 10 getestet habe, sondern nur die reine 64bit-Version. Muss ich dann noch nachholen.

Wenn Du die Formatierung dennoch einmal sehen möchtest, dann mach den Haken im Hauptmenu bei "Optionen" -> "Performance" -> "Datenaufbereitung in Hintergrund ausführen" einfach mal heraus, dann müßte es gehen (hoffentlich). Dann kannst Du aber wärend der Datenaufbereitung nicht in der Anwendung weiterarbeiten.


viele Grüße
BadenPower
.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

#18
Hallo BadenPower,
die Ausgabe "währenddessen" kannst du im Bild meines letzten Beitrages sehen, und die Abfrage schick ich jetzt noch mit.
Hatte ich natürlich von gestern noch, aber du wolltest in CodeTags haben. Hab die Bilder da nicht reinbekommen...  ;D.... Spaß muss auch mal sein ;)

Zitatdann mach den Haken im Hauptmenu bei "Optionen" -> "Performance" -> "Datenaufbereitung in Hintergrund ausführen" einfach mal heraus
Das funktioniert hervorragend!
Ich denke auch, es wird an der 32/64bit Version liegen.
Gruß Tino

BadenPower

Zitat von: Tibin am 30 Oktober 2018, 16:36:38
Ich denke auch, es wird an der 32/64bit Version liegen.

Jetzt habe ich eine "schlechte" Nachricht für Dich.

Habe nun nochmals beide Versionen, also die 32/64bit und die 64bit auf meinem Win10-Home-Rechner getestet und konnte keine Fehlfunktion feststellen.

Da .Keks zusammen mit dem neuesten Kalenderskript auch die aktuelle Entwicklungsversion erhalten hat, klopfe ich dort eonmal an unf Frage ob er den Case nachstellen könnte.



viele Grüße
BadenPower
.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

Hallo BadenPower,
habe es  dort gelesen und bin gespannt. Aber wenn es bei dir auch geht, wird es bei .Keks auch gehen. Liegt bestimmt an irgendeiner Konstellation auf meinen Rechnern. Egal, ich weiß ja jetzt, wo ich klicken muss, wenn ich unbedingt die Formatierung benötige. ;)
Gruß Tino.

.Keks

Guten Abend,

ich kann das Problem unter W10 x64 nachstellen und der HM-Investigator friert ein, wenn ich die Formatierung entsprechend einstelle.

Der Haken unter:
"Optionen" -> "Performance" -> "Datenaufbereitung in Hintergrund ausführen"

war gesetzt.

Nachdem ich diesen entfernt habe lief der HM-Investigator tadellos ;D.

Viele Grüße
.Keks

Tibin

Danke dir für's testen, ich hatte schon sämtliche Treiber in Verdacht. :)
Gruß Tino

BadenPower

Hallo zusammen,

Zitat von: .Keks am 01 November 2018, 21:19:36
ich kann das Problem unter W10 x64 nachstellen und der HM-Investigator friert ein, wenn ich die Formatierung entsprechend einstelle.

Noch mehr Fragezeichen auf der Stirn.

Da muss ich doch einmal tiefer graben und schauen, ob es an der Komponente oder an der Threadtechnik liegt und ob es eventuell schon einen Win10-Patch für dieses Problem für Lazarus gibt.

War nicht der 1. Fehler, welcher unter Windows 10 auftrat und wird wahrscheinlich nicht der Letzte sein, meistens allerdings mit der Pro-Version und meistens nach Windows 10-Updates.
Aber auch diesen werde ich ausgemerzt bekommen. Vielleicht habe ich ja "Glück" und der Fehler zeigt sich schnellstens auch auf meinen Win10-System.

Danke nochmals fürs testen und melden.


viele Grüße
BadenPower
.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

.Keks

Guten Morgen,

ich habe jetzt den HM-Investigator auf meinem dedizierten HP Notebook (W7Pro x64) unter Windows 7 ausprobiert.
Die lizensierte Software ist auf einem USB-Stick, den ich auch auf dem Test mit dem W10 x64 NB genutzt hatte.,

Das Verhalten unter W7Pro x64 ist ebenso wie unter dem gestrigen Test mit W10.

Der HM-Investigator friert ein, wenn der Haken unter:
"Optionen" -> "Performance" -> "Datenaufbereitung in Hintergrund ausführen"
gesetzt ist.

Haken weg und alles läuft!

Besteht ggf. die Möglichkeit diesen Punkt im Programm zu speichern?
Hatte jetzt nur den Stick genommen, an den HP gesteckt und laufen lassen. Nach dem Test gestern habe ich den Haken "nicht "wieder neu gesetzt.
Am HP war der Haken wieder gesetzt und das Programm ist "eingefroren".
Es scheint somit eine "Default-Einstellung" zu sein.

Da ich noch ein paar "Kisten" im Knürr hängen habe, könnte ich das ggf. auch mal auf VM's ausprobieren, da HP sich mit seinen Treibern (sollten sie doch Einfluss auf das Verhalten haben) eh nicht mit Ruhm bekleckert.

Viele Grüße
.Keks








BadenPower

Wiki-Beitrag:
Datenpunkte aller Kanäle eines Gerätes auslesen
mit Zusatzinformationen bei Kanal und Datenpunkt


Zitat von: .Keks am 25 Oktober 2018, 07:40:43
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
Siehe: https://forum.fhem.de/index.php/topic,88065.msg849601.html#msg849601


In diesem Beispiel möchten wir Informationen zu den Kanälen und deren Datenpunkte des Gerätes mit dem Namen "BWM GeierHome" auslesen.

Da wir hier die Informationen nur zu einem Gerät auslesen möchten, gehen wir wählen wir den Reiter "Komplexe Abfagen" -> "Sucheinstellungen" -> "Gerät" aus. Dort wird nun in der Gruppe "Gerät ermitteln" bei "suchen nach" der Name des Gerätes eingetragen (oder false bereits vorhanden in der DropBox ausgewählt) und durch anklicken die "Suche nach Name oder ID" aktiviert. (Bild1 Pfeil1).

Da wir Kinder des Gerätes (hier die Kanäle) und deren Kinder, also Kindeskinder (hier die Datenpunkte) auslesen möchten, stellen wir in der Gruppe "weitere Optionen" die "maximale Auslesetiefe" auf mindestens 2 (Bild1 Pfeil2).

Unten auf der Seite in der Auswahlbox "Gerät" wählen (Bild1 Pfeil3).
Startet man nun die Suche mit der Schaltfläche "Abfrage starten", dann sollte das entsprechende Gerät im "Ausgabe formatiert" angezeigt werden (Bild1).

Da wir aber nicht nur das Gerät angezeigt bekommen wollen, sondern auch weitere Informationen zu Elementen (Kinder) des Gerätes, gehen wir zum Reiter "komplexe Abfragen" -> "Ausgabeeinstellungen" -> "Gerät" und wählen dort den Reiter "Elemente" aus. Da wir alle Kanäle mit Zusatzinfos anzeigen lassen möchten entfernen wir dort in der Gruppe "Beschränkungen" den Haken bei "nur Basisausgabe der Elemente verwenden" (Bild2 Pfeil1) und wählen in der Gruppe "Einstellungen der Elemente verwenden" den Reiter "Zusatzauswahl" aus und setzen dort den Haken bei "Kanäle [via .Channels()]" (Bild2 Pfeil2), da wir wirklich auch alle Kanäle anzeigen lassen möchten. Andere Enumerierungsvarianten, welche zur Auswahl stehen, haben andere Auswirkungen (Einschränkungen) auf die angezeigten Elemente.

Zur Kontrolle kann man wieder die Schaltfläche "Abfrage starten" drücken und sich die Ausgabe (Bild2) anschauen.

Da wir aber nicht nur die Kanäle angezeigt bekommen wollen, sondern auch weitere Informationen der Kanäle, gehen wir zum Reiter "komplexe Abfragen" -> "Ausgabeeinstellungen" -> "Kanal" und wählen dort den Reiter "Kanalobjekt" aus.
Dort in der Gruppe "Basisinformationen" im Reiter "Basismethoden" klicken wir nun die gewüschten Methoden an. In userem Fall .Enabled(), .Internal() und.Visible(). (Bild3)

Aber wir wollen ja auch noch Informationen zu den Datenpunkten (Element) der Kanäle haben. Hierzu wählen wir statt dem Reiter "Kanalobjekt" nun den Reiter "Elemente" aus (Bild4). Da wir alle Datenpunkte mit Zusatzinfos anzeigen lassen möchten entfernen wir dort in der Gruppe "Beschränkungen" den Haken bei "nur Basisausgabe der Elemente verwenden" (Bild4 Pfeil1) und wählen in der Gruppe "Einstellungen der Elemente verwenden" den Reiter "Zusatzauswahl" aus und setzen dort den Haken bei "Datenpunkte [via .DPs()]" (Bild4 Pfeil2), da wir wirklich auch alle Datenpunkte anzeigen lassen möchten.

Zu guter Letzt interessieren uns ja noch Informationen zu den Datenpunkten. Wir berücksichtigen hier nur die zusätzlichen Informationen der Datenpunkte vom Typ HssDp. Daher wählen wir den Reiter "komplexe Abfragen" -> "Ausgabeeinstellungen" -> "HssDp" und wählen dort den Reiter "Datenpunktobjekt" aus. Dort in der Gruppe "Basisinformationen" im Reiter "Basismethoden" klicken wir nun die gewüschten Methoden an. In userem Fall .Enabled(), .Internal(), .Operations() und.Visible(). (Bild5)

Ein Klick auf die Schaltfläche "Abfrage starten" und die Ausgabe (Bild5) zeigt nun alle Informationen an.

Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

Hallo BadenPower,
das nenne ich mal ne Anleitung! Daumen hoch für deine aufwendige Arbeit!
Hab das mal genau so wie du es geschrieben hast, nachgemacht und hat alles super hingehauen.

ganz nebenbei: Den HM-CodeEditor nutze ich jetzt auch öfter mal. (zumindest zum Testen von Skripten)
Super Teil, da man nicht den Umweg über die WebUI nehmen muss.
Gruß Tino.

BadenPower

Zitat von: Tibin am 05 November 2018, 14:12:58
Super Teil

Danke Dir.

Zitat von: Tibin am 05 November 2018, 14:12:58
da man nicht den Umweg über die WebUI nehmen muss.

Praktisch ist auch die automatische Fehlererkennung direkt wärend des Schreibens von Quellcode-Zeilen und die komplette Syntax-Hervorhebung.

Wenn Du beim Testen von Skripten gleichzeitig noch den HM-Analyser mit aktivierter SysLog-Anzeige laufen läßt, dann erhälst Du gleichzeitig noch ein Live-Feedback Deiner CCU, zum Beispiel Parser-Fehler und ScriptRuntimeErrors, aber auch wahlweise alle anderen Meldungen.

Falls Du Fragen zum HM-CodeEditor hast, dann kannst Du diesen Thread benutzen:
https://forum.fhem.de/index.php/topic,82944.msg751161.html#msg751161



viele Grüße
BadenPower
.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

Wiki-Beitrag:
Programme inkl. aller Bedingungen und Aktionen auslesen

Um alle Bedingungen und Aktionen in einem Programm anzeigen zu lassen, müssen wir uns zuerst überlegen, wie ein Programm aufgebaut ist.

Ein Programm enthält ein Regelwerk. Dieses Regelwerk (Rule) (zukünftig Regel) besitz die Optionen für Bedingungsblöcke (Condition), den Aktionsblock (Destinatio) und die Unterregel (SubRule()). Ein Bedingungsblock wiederum enthält die Einzelbedingungen (SingleConditon). Ein Aktionsblock enthält die Einzelaktionen (SingleDestionation).

Die dem Programm zugeordnete Regel entspricht dem WENN-Abschnitt eines Programmes. Dieser Regel untergeordnete Regeln, zu finden in der SubRule() stellen dann die weiteren SONST-WENN-Abschnitte oder den SONST-Abschnitt dar, wobei der SONST-Abschnitt immer diejenige Regel ist, welche keine weitere SubRule enthält. So sollte es jedenfalls bei einem nicht defekten Programm sein.

Wie stellen wir dies nun ein?

Als erstes wählen wir den Reiter "Ausgabeeinstellungen" und dort den Reiter "Programm" aus.
Dort wechseln wir in den Unterreiter "Elemente" (Bild 1) und wählen in der Gruppe "Einstellungen der Elemente verwenden" im Reiter "Standardauswahl" in der Auswahlliste "Regelwerk [via Rules()] aus.

Damit nicht alle auswählbaren Elemente angezeigt werden, sollte der Haken bei "nur ausgewählte Elemene anzeigen" gesetzt sein.

Der Haken in der Gruppe "Beschränkungen" bei "nur Basisausgaben der Elemente verwenden" hingegen darf nicht gesetzt sein, da wir ja weiter Informationen (Kinder/Unterelemente) auslesen möchten.

Nun wechseln wir in den Reiter "Ausgabeeinstellungen" -> Unterreiter -> "Regel" und dort wieder in den Unterreiter "Elemente" (Bild 2). In der Gruppe "Einstellungen der Elemente verwenden" im Reiter "Standardauswahl" wählen wir in der Auswahlliste "Bedingungen [via RuleConditions()], "Destinations [via RuleDestination()] und "Unterregel [via RuleSubRule()] aus. Auch hier den Haken bei "nur ausgewählte Elemene anzeigen" setzen und den Haken in der Gruppe "Beschränkungen" bei "nur Basisausgaben der Elemente verwenden" entfernen.

Nun wechseln wir in den Reiter "Ausgabeeinstellungen" -> Unterreiter -> "Condition" und dort wieder in den Unterreiter "Elemente"  (Bild 3). In der Gruppe "Einstellungen der Elemente verwenden" im Reiter "Standardauswahl" wählen wir in der Auswahlliste "SingleConditions [via CndSingleConditions()] aus. Auch hier den Haken bei "nur ausgewählte Elemene anzeigen" setzen und den Haken in der Gruppe "Beschränkungen" bei "nur Basisausgaben der Elemente verwenden" entfernen.

Nun wechseln wir in den Reiter "Ausgabeeinstellungen" -> Unterreiter -> "Condition" und dort wieder in den Unterreiter "Elemente"  (Bild 3). In der Gruppe "Einstellungen der Elemente verwenden" im Reiter "Standardauswahl" wählen wir in der Auswahlliste "SingleConditions [via CndSingleConditions()] aus. Auch hier den Haken bei "nur ausgewählte Elemene anzeigen" setzen und den Haken in der Gruppe "Beschränkungen" bei "nur Basisausgaben der Elemente verwenden" entfernen.

Nun wechseln wir in den Reiter "Ausgabeeinstellungen" -> Unterreiter -> "Destination" und dort wieder in den Unterreiter "Elemente"  (Bild 4). In der Gruppe "Einstellungen der Elemente verwenden" im Reiter "Standardauswahl" wählen wir in der Auswahlliste "SingleDestinations [via DestSingleDestinations()] aus. Auch hier den Haken bei "nur ausgewählte Elemene anzeigen" setzen und den Haken in der Gruppe "Beschränkungen" bei "nur Basisausgaben der Elemente verwenden" entfernen.

Die einzelnen Werte zu den verschiedenen Objekten, welche abgefragt werden sollen, kann man nun noch in den einzelnen Reitern "Programm!, "Regel", "Condition", "Destination", "SingleCondition" (Bild 5) und "Single Destination" in den jeweiligen Reitern "XYZ-Objekt" im Unterreiter "Basismethoden" auswählen.

Wichtig ist es in den "Sucheinstellungen" bei "Programm" (Bild 6) in der Gruppe "weitere Optionen" die "maximale Auslesetiefe" an die Anzahl der WENN-, SONST-WENN- und SONST-Abschnitte anzupassen, da die Unterregeln immer Kinder der vorhergehenden Regeln sind.


Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Gluehwurm

Hallo BadenPower,

- HM-Analiser:  Analyse erfolgreich
Fehler:Objekt 1632 svEnergyCounter_1574_000895699E78BB:5 vom Typ VARDP nicht in der Systemvariableliste vorhanden.
- HM-Investigator:  Objekt gefunden
svEnergyCounter_1574_000895699E78BB:5   1632   VARDP

... wie bekomme ich das Objekt gelöscht ?  Finde keinen Löschen-Button (zumindest keinen, der das tut  ;) )


Gruß
Bruno