Verlaufsdatenbank automatisch löschen bei defekt der Influx DB

Hallo zusammen,

da mein homee heute wiedermal 7 Neustarts innerhalb von 8 Stunden hingelegt hat, musste ich mich dem Thema mal annehmen.
homee besitzt ja ein Log das nicht so einfach zugänglich ist, aber es ist nicht unmöglich dieses zu ziehen.
Bei mir scheint die Ursache für die Neustarts eine defekte Datenbank zu sein.
Ich hatte das Log bisher per http Request gezogen und gespeichert.
Nach Rücksprache mit @stfnhmplr wurde daraus jetzt ein neues Node für das Node-Red Package.

Installation mit

npm i node-red-contrib-homee@0.11.0-beta.1

Ich triggere den Flow nun jeden Tag einmal und wenn die Influx ein error in den letzten 24 Stunden aufweist dann wird die Datenbank zurückgesetzt und Influx kann wieder fleissig Werte schreiben.

[
    {
        "id": "bdfb2ca0.a3fef",
        "type": "homeeLog",
        "z": "9c8a9827.537708",
        "homee": "",
        "name": "homeeLog",
        "output": "collection",
        "x": 580,
        "y": 640,
        "wires": [
            [
                "b53766c4.f07588"
            ]
        ]
    },
    {
        "id": "9b93dfe0.a073c",
        "type": "inject",
        "z": "9c8a9827.537708",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "00 03 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 410,
        "y": 640,
        "wires": [
            [
                "bdfb2ca0.a3fef"
            ]
        ]
    },
    {
        "id": "b53766c4.f07588",
        "type": "function",
        "z": "9c8a9827.537708",
        "name": "",
        "func": "var filter = msg.payload;\nvar id2 = 0;\nfilter.forEach(function(id){\n    if (id.topic === \"INFLUX\" && id.level === \"error\"&& id.message === \" <queryThread> cpr error message: Failed to connect to localhost port 8086: Connection refused - response:  - retry after sleep\"){\n        var date2 = new Date(id.datetime.replace(\" \",\"T\"))\n        if(date2.getHours() >15 ){\n        id2++;}\n    }\n})\nif (id2 > 20){return{payload:\"PUT:settings?history=0\"}}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 640,
        "wires": [
            [
                "bbc74107.0e058"
            ]
        ]
    },
    {
        "id": "bbc74107.0e058",
        "type": "link out",
        "z": "9c8a9827.537708",
        "name": "",
        "links": [
            "be751e6.8d903e"
        ],
        "x": 885,
        "y": 640,
        "wires": []
    },
    {
        "id": "2dcbfc5a.41f19c",
        "type": "comment",
        "z": "9c8a9827.537708",
        "name": "Linknode zum homeeApiNode",
        "info": "",
        "x": 890,
        "y": 600,
        "wires": []
    }
]

Die Nutzung des Flow’s ist auf eigene Gefahr.

Viel Spaß dabei

Voraussetzung:
-24/7 Rechner (z.B. PI )
-Node-Red
-homee Node

17 Like

wie sieht so ein Log denn aus ?

hier ein Error der Influx

2 Like

Ich häng mich hier mal mit dran: Das für den Log-Node notwendige Update mit der Versionsnummer 0.11.0 hat den Beta Status verlassen und kann nun über die Node-RED Palette installiert werden.

Um euch den Start ein wenig einfacher zu machen, habe ich nicht nur das Wiki aktualisiert, sondern auch einen begleitenden Blog-Post geschrieben: Der neue homee Log Node | himpler.com

Dort gibt es auch drei Beispielflows, die eine Grundlage für den Umgang mit dem Node geben.

Wie immer freue ich mich über euren Support in Form eines Stars auf Github und/oder auch gerne über einen Kaffee.

16 Like

Funktioniert super, vielen Dank Stefan!

Einträge wie

[2021-03-08 02:41:57.110] [MY_STROM] [warning] :warning: request failed: 8, Operation timed out after 5000 milliseconds with 0 bytes received",

"[2021-03-08 02:41:57.111] [MY_STROM] [warning] ⚠️ <poll attributes> could not get report (nodeID: 87, name: Slave Steck. Pool Sauger, IP: 192.168.1.73)",

"[2021-03-08 03:00:40.898] [MY_STROM] [warning] ⚠️ <get report> request failed: 8, Operation timed out after 5001 milliseconds with 0 bytes received",

kann ich auch verstehen.
Andere dagegen helfen leider überhaupt nicht (siehe unten). Oder fehlt mir da noch irgendwie der Kontext aus dem Logfile? Hab alle Formate auspropbiert, aber mehr Info bekomme ich nicht raus.

„[2021-08-26 21:15:38.039] [WEB] [warning] :warning: invalid response (element: #/attribute/last_value, keyword: type)“,

"[2021-08-26 21:15:38.227] [WEB] [warning] ⚠️ <validate response> invalid response (element: #/attribute/last_value, keyword: type)",

"[2021-08-26 21:15:38.344] [WEB] [warning] ⚠️ <validate response> invalid response (element: #/attribute/current_value, keyword: type)",

"[2021-08-26 21:15:38.348] [WEB] [warning] ⚠️ <validate response> invalid response (element: #/attribute/current_value, keyword: type)",

Solche Einträge habe ich zu Tausenden. Würde gern wissen, was das ist. Kann mir da vom @Support jemand weiterhelfen?

Da sendest du einen falschen wert von einem vhih Gerät an den homee und dieser kann nicht validiert werden.
Bitte bedenke das es ein 3rd Party node ist und homee hier keinerlei Support leistet.

Schalte bitte deinen vhih mal ab und schau was dann an Fehlern kommt.

Dieser Fehler sollte mit dem neuen Homer node nicht mehr auftreten.

2 Like

Danke für die schnelle Antwort.
Das VHiH nicht supportet ist, war mir klar, es ging mir eher um die Deutung des Logfile Entries. Aber da hast Du mir ja schon geholfen :+1:
Hast Du eine Idee wie ich herausfinde, welches virtuelles Gerät es ist, außer jedes nacheinander abzuschalten?

Wenn du die aktuelle Version des homee nodes benutzt dann kommt der Fehler nicht mehr vor.
Bei mir lag es einem NaN Wert. Also s hau ob du durch Zufall ein Gerät hast was damit gefüttert wird.

Hallo Micha,

jetzt habe ich leider ein Verständnisproblem:
Was ist ein „NaN“ Wert?
Die Homee Node ist die aktuelle 0.11.0, oder welche Version meinst Du?

Habs geschnallt, „Not a Number“ Value. Ich glaube ich hab da schon was im Debug gefunden:

Id und value müssen numerisch sein. Die Nachricht wurde ignoriert

Aber wenn die Nachricht ignoriert wird, sollte der Wert doch nicht an Homee gesendet werden?

Das wurde erst in dieser node Version eingeführt das der NaN ignoriert wird.

Ja, und das funktioniert scheinbar auch, da die Einträge im LogFile am 26.8. enden. Danach hatte ich die aktuelle Node installiert. Da hab ich wieder mal was dazu gelernt.
Danke für die schnelle Hilfe!

2 Like