[Modul] HMInventory

Hallo Stefan,

aber gerne.

Die Meldung kannst du ignorieren. Siehe hier.

Gruß

Burkhard

Hallo Burkhard,

habe Dein Modul installiert. Folgendes ist mir aufgefallen:

Wenn ich den Punkt „Save Device List in Variable“ aktiviere, kriege ich auch eine Variable angelegt mit dem Format String. Aber darin sind keine Instanzen gelistet sondern nur das Wort False. Die HM_Inventory.html ist aber vorhanden und auch mit Instanzen gefüllt. :confused:

Was ich noch nett finden würde, wenn Dein Modul die HM_Inventory.html als Variable anlegen würde (String -> ~HTMLBox). Kann aber auch sein, dass er das eigentlich macht und bei mir nur „FALSE“ reinschreibt. :o

Im Meldungsfenster kommt kein Hinweis, das etwas nicht geklappt hat.

Anbei noch der Debug-Verlauf:

HM_Inventory_Dump.zip (63.6 KB)

Viele Grüße,

Burkhard

Hallo Burkhard,

dein Problem kann ich leider bei mir noch nicht nachvollziehen. Es sieht so aus, als ob json_encode ein Problem hat:confused:

Könntest du in Zeile 460 einmal die Kommentarzeichen entfernen und kontrollieren, ob da ein Array ausgegeben wird? Das hilft eventuell weiter.

print_r($HM_array);

Gruß

Burkhard

Hallo Burkhard,

eine Liste mit Arrays wird aufgebaut. Sind über 300 und wie folgt aufgebaut:

Viele Grüße,

Burkhard

Lösung gefunden:

Wenn beim Ausführen von „create Report“ zwar die Instanzen abgefragt und in die HM_inventory.html geschrieben werden, aber bei aktiviertem „Save Device List in Variable“ nur ein „False“ erscheint, liegt der Fehler evtl. an der UTF-Codierung.

Gemerkt habe ich es beim Ansehen der Instanzenliste der HM_inventory.html im Browser. Dort waren noch einige Altlasten zu sehen, wo die Instanzen anstelle von Umlauten nur Fragezeichen aufwiesen.

Um dies zu bereinigen geht man in der Konsole auf Kern Instanzen -> Utils -> Alle Fehler beheben. Danach im HM Inventory Report Creator erneut auf „create Report“ klicken und dann sollte die Variable korrekt gefüllt werden. Hat bei mir jedenfalls funktioniert.

Dank an Burkhard (bumaas) für den perfekten Support. ;):smiley:

Viele Grüße,

Burkhard

Hallo Burkhard,

nun zu deiner zweiten Frage :slight_smile:

zwei Gründe, die für mich momentan dagegen sprechen:

[ul]
[li]Die HTML Datei, die erzeugt wird, ist nicht mehr ‚state-of-the-art‘. Sie beinhaltet eine ganze Reihe von ‚deprecated html tags‘ und müsste mal umgeschrieben werden.
[/li][li] Wenn man die Ausgabe in seinem Webfront ausgeben möchte, wäre es natürlich auch schön, wenn der eingestellte Skin berücksichtigt würde.
[/li][/ul]

So eine unfertige Seite möchte ich nur ungerne für das Webfront anbieten. Leider kann ich aber kein html und bräuchte dafür Unterstützung…

Aber wenn du mit den Einschränkungen leben kannst , kannst du dir leicht selber helfen. Leg einfach eine eigene String-Variable mit dem Profil ~html an und übernehme den Inhalt der Datei in die Variable :loveips::

$id_HM_ReportGenerator = 10064 /* anzupassen */;
$id_HTML_Variable = 13012 /* anzupassen */;

$filename = IPS_GetProperty($id_HM_ReportGenerator, 'OutputFile');
$str = file_get_contents($filename);

SetValue($id_HTML_Variable, $str);

Gruß

Burkhard

Hallo Burkhard,

ich kann manchmal den Report Creator nicht öffnen (Text und Ausrufezeichen rot), bekomme statt dessen die Fehlermeldung: ‚InstanceInterface not available‘. Im Log sehe ich keine Fehlermeldungen, die ich da zuordnen könnte.
Woran kann es liegen? Die zugehörige pivccu ist verbunden und zeigt keine Fehler.

Grüße, Gerhard

Da bin ich momentan ratlos. Kannst du genauer sagen, wann es auftritt und wie du die Meldung wieder weg bekommst?
Wie oft kommt die Meldung (täglich, wöchentlich)?

Hallo Burghard,

ich muss den Creator neu anlegen. Kam bisher 3 - 4 mal vor, Abständen gefühlt eher unregelmäßig.

Grüße, Gerhard

Das sieht mir ganz nach einem IPS Problem aus. Bist du auf der aktuellen Beta?

Diese Meldung kommt wenn die Instanz kaputt ist.
Dies passiert z.b. beim Starten von IPS, wenn dabei dein Modul einen Fehler wirft (Echo, Exception usw).
Darum kritische Funktionen nicht im Create und nicht im ApplyChanges ausführen.
Beim ApplyChanges kann man dazu auf GetKernelRunlevel prüfen.
Michael

Ich kann da nicht wirklich etwas Kritisches finden. Bei einer Stelle im Create() bin ich mir unsicher, bei der ich die IP Adresse der Homematic Instanz herausfinden will:

        $instanceList = IPS_GetInstanceListByModuleID('{A151ECE9-D733-4FB9-AA15-7F7DD10C58AF}');
        if (count($instanceList) > 0) {
            $host = IPS_GetProperty($instanceList[0], 'Host');
        } else {
            $host = '';
        }

Kann es das sein?

Gruß

Burkhard

Ja, weil woher willst du wissen ob diese Instanz zu diesem Zeitpunkt schon existiert?
Das gehört da nicht hin, wenn dann im ApplyChanges, nach der Prüfung ob der Kernel ready ist.
Dann musst du aber auch einmal nach dem Neustart (siehe Registermessage IPS_KERNELSTARTED, Nachrichten — IP-Symcon :: Automatisierungssoftware) die Adresse ermitteln.
Wobei das aber alles Unfug ist, was ist wenn ich zwei CCUs habe?

Eigentlich existiert dafür der Datenaustausch.
Und darüber kannst du auch (eingeschränkt) XMLRPC senden; sollte für dein Belange aber ausreichen.
Michael

Das mit den 2 CCU (pivccu) stimmt hier tatsächlich. Und gefühlt, brauchen die etwas Zeit zum Starten.

Grüße, Gerhard

Danke für die Hinweise!

Habe es jetzt geändert und prüfe auf KR_READY.

Gruß

Burkhard

Hallo Burkhard,

wäre es evtl. möglich bei dem Punkt „Sort Order“ die Möglichkeit „HM device name“ mit einzubinden?

Würde für meine Situation sinnvoller sein als nach IPS-Name zu sortieren, da ich gleichzeitig im HM device Namen den Installationsort vermerkt habe (siehe Screenshot).

Viele Grüße und herzlichen Dank für das Modul,

Burkhard

Hallo Burkhard,

bei der Anzeige meiner 2 pivccu habe ich den Eindruck, dass Du nach der logischen Ansicht die Suche und Darstellung wählst und nicht nach der physikalischen. Ich bekommen für jede CCU ALLE IPS-ID, IPS-Device Name und die HM-Adress angezeigt. Der Rest der Daten ist bezogen auf die CCU. Ich hoffe, ich habe dies verständlich erklärt. Ich bekomme also 2 gleich lange Listen. Dies hat mich erst mal verblüfft. Ist auch nicht sehr übersichtlich.

Grüße, Gerhard

Gute Idee. Habe ich eingebaut.

Seltsam. das kann ich bei mir nicht ganz nachvollziehen (habe aber auch nur eine CCU). Es werden für die Liste die Daten von der unter ‚Host‘ angegebenen IP Adresse über xmlrpc geholt. Und zwar nacheinander für die RF, IP und Wired Services.

Kannst du mal im Debug Fenster schauen, ob du da etwas sehen kannst?

Gruß

Burkhard

Hallo Burkhard,

perfekt, vielen herzlichen Dank

Grüße,

Burkhard

Hallo Burkhard,

einer der Creators war wohl nach dem IPS-update wieder auf rot, aber nach Deinem Modul-Update hat sich das geändert. Beide sind OK.
Nur die Angelegenheit mit logischer / physikalischer Ansicht ist noch offen.

Grüße, Gerhard