Hauptmenü

Problem mit %t -> invalid Date

Begonnen von Wolle02, 03 Dezember 2022, 11:38:56

Vorheriges Thema - Nächstes Thema

Wolle02

Ich habe das Smoke Detector Template für mich etwas angepasst. In der Infozeile möchte ich angezeigt bekommen wann der letzte Rauchmeldertest durchgeführt wurde. Dafür habe ich folgendes in das Template eingetragen:

"mid1": ["SMOKE_DETECTOR_TEST_RESULT:SMOKE_TEST_OK:letzter Test %t"],

Leider wird mir in der Infozeile nun folgendes angezeigt: letzter Test Invalid Date

Das Reading SMOKE_DETECTOR_TEST_RESULT hat aber einen ganz normalen Zeitstempel.

jemu75

Hallo,

deine Definition sieht auf den ersten Blick gut aus. Kannst du bitte mal noch ein jsonList2 für das Device aus FHEM ziehen und hier posten.

Grüße
Jens

Wolle02

Aber gerne.

{
  "Arg":"Rauchmelder_IT",
  "Results": [
  {
    "Name":"Rauchmelder_IT",
    "PossibleSets":"clear defaults:reset,update,old,forceReset readingFilter:multiple-strict,ERROR_CODE,ERROR_DEGRADED_CHAMBER,SMOKE_DETECTOR_ALARM_STATUS,SMOKE_DETECTOR_TEST_RESULT config datapoint command:RESERVED_ALARM_OFF,INTRUSION_ALARM_OFF,INTRUSION_ALARM,SMOKE_TEST,COMMUNICATION_TEST,COMMUNICATION_TEST_REPEATED",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5  IODev ccucalculate ccuflags:multiple-strict,hideStdReadings,replaceStdReadings,noBoundsChecking,ackState,logCommand,noReadings,trace,simulate,showMasterReadings,showLinkReadings,showDeviceReadings,showServiceReadings ccureadingfilter:textField-long ccureadingformat:name,namelc,address,addresslc,datapoint,datapointlc ccureadingname:textField-long ccuSetOnChange ccuReadingPrefix ccuscaleval ccuverify:0,1,2 ccuget:State,Value devStateFlags disable:0,1 hmstatevals:textField-long statevals substitute:textField-long substexcl stripnumber peer:textField-long traceFilter event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading statedatapoint:select,SMOKE_DETECTOR_ALARM_STATUS controldatapoint:select,SMOKE_DETECTOR_COMMAND ASC:0,1,2 DbLogExclude DbLogInclude DbLogValueFn:textField-long MSwitchcmd alarmDevice:Actor,Sensor alarmSettings alexaName alexaProactiveEvents:1,0 alexaRoom appOptions:textField-long autooff cmdIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,scene homebridgeMapping:textField-long icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue readingsWatcher sortby webCmd webCmdLabel:textField-long widgetOverride Rauchmelder Rauchmelder_map structexclude",
    "Internals": {
      "DEF": "000A5BE99F458A:1",
      "FUUID": "61d0301f-f33f-bf2d-7c7c-c7e1804387679463",
      "FVERSION": "88_HMCCUCHN.pm:v5.0.0-s26565/2022-10-20",
      "IODev": "MyCCU3",
      "NAME": "Rauchmelder_IT",
      "NR": "467",
      "STATE": "IDLE_OFF",
      "TYPE": "HMCCUCHN",
      "ccuaddr": "000A5BE99F458A:1",
      "ccudevstate": "active",
      "ccuif": "HmIP-RF",
      "ccuname": "HmIP-SWSD 000A5BE99F458A:1",
      "ccurolectrl": "SMOKE_DETECTOR",
      "ccurolestate": "SMOKE_DETECTOR",
      "ccusubtype": "SD",
      "ccutype": "HmIP-SWSD",
      "eventCount": "11",
      "firmware": "1.0.12",
      "readonly": "no"
    },
    "Readings": {
      "ERROR_CODE": { "Value":"0", "Time":"2022-12-03 11:09:17" },
      "ERROR_DEGRADED_CHAMBER": { "Value":"false", "Time":"2022-12-03 11:09:17" },
      "IODev": { "Value":"MyCCU3", "Time":"2022-11-21 12:26:45" },
      "SMOKE_DETECTOR_ALARM_STATUS": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" },
      "SMOKE_DETECTOR_TEST_RESULT": { "Value":"SMOKE_TEST_OK", "Time":"2022-12-03 11:09:17" },
      "activity": { "Value":"alive", "Time":"2022-12-03 11:09:16" },
      "battery": { "Value":"ok", "Time":"2022-12-03 11:09:16" },
      "battery_volt": { "Value":"", "Time":"2022-07-03 09:44:20" },
      "devstate": { "Value":"ok", "Time":"2022-12-03 11:09:17" },
      "hmstate": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" },
      "rssidevice": { "Value":"-44", "Time":"2022-12-03 11:09:16" },
      "rssipeer": { "Value":"-48", "Time":"2022-10-29 14:12:58" },
      "state": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" }
    },
    "Attributes": {
      "alarmDevice": "Sensor",
      "alarmSettings": "alarm7,|Rauchmelder_IT:.*PRIMARY_ALARM.*|IT-Raum|on",
      "alias": "Rauchmelder_IT-Raum",
      "appOptions": "{ \"template\": \"smokedetect\",\n  \"name\": \"IT-Raum\"}",
      "devStateIcon": "IDLE_OFF:15px-green PRIMARY_ALARM:15px-red SECONDARY_ALARM:15px-orange",
      "event-on-change-reading": ".*",
      "group": "Rauchmelder",
      "icon": "secur_smoke_detector",
      "room": "Alarm,Haus",
      "userattr": "Rauchmelder Rauchmelder_map structexclude"
    }
  }  ],
  "totalResultsReturned":1
}

jemu75

Auf welchem Device hast du FHEMApp geöffnet? Ich kann mich schwach erinnern, dass das Thema mit den Datumswerten mal auf div. iOS Geräten aufgefallen war.

Wolle02

Das sind zum einen ein Android Tablet mit Fully Browser und zum anderen mein Windowsrechner mit Firefox Browser.
Auf meinem Handy hab ich auch noch den Chrome Browser, aber auch da wird Invalid Date angezeigt.

jemu75

Hast du die Ersetzung %t noch an anderer Stelle im Einsatz. Interessant wäre noch zu wissen, ob die Meldung "Invalid Date" generell kommt, wenn du %t verwendest, ob das nur bei diesem Template auftritt.

Wolle02

Nein, eigentlich verwende ich %t sonst nirgends. Ich habe es es versuchsweise mal in ein Switchtemplate eingebaut. Auch erscheint dann Invalid Date.

jemu75


Wolle02

{
  "options": {
    "mobileHeaderContent": "clock",
    "reloadBtn": true,
    "homeBtn": true,
    "expandGroups": false,
    "expandRooms": false,
    "lang": "de",
    "maxChartPoints": 100,
    "logBuffer": 500,
    "_comment": "debugMode: true",
    "debugLevel": 5
  },
  "theme": {
    "dark": true,
    "themes": {
      "dark": {
      },
      "light": {
        "primary": "#616161",
        "secondary": "#F5F5F5",
        "accent": "#0adbc2",
        "error": "#e91e63",
        "warning": "#ffc107",
        "info": "#03a9f4",
        "success": "#4caf50"
      }
    }
  }
}

jemu75

Sorry für die verspätete Rückmeldung. Probiere mal bitte den Parameter "lang" auf "en" umzustellen.
Werden die anderen Datums und Zeitangaben dann noch angezeigt? Und was passiert dann mit dem Zeitstempel, den Du in der Statuszeile anzeigen möchtest?

Wolle02

Leider kommt nach Umstellen auf "en" immer noch Invalid Date. Augenscheinlich hat sich gar nichts geändert.

jemu75

Leider bin ich bei dem Thema etwas ratlos. Wir hatten das Problem letztes Jahr schonmal in Verbindung mit iOS und Safari. Damals hatte ich Funktionen angepasst, die auch mit Safari laufen. Leider trifft das Thema iOS bei dir ja nicht zu. Irgendwas klemmt da bei der Verarbeitung der Datumswerte. Aber was da genau hängt kann ich mir nicht erklären - zumal die Werte bei Dir genau so aussehen, wie bei mir.  ???

jemu75

Zitat von: Wolle02 am 06 Dezember 2022, 17:35:59
Leider kommt nach Umstellen auf "en" immer noch Invalid Date. Augenscheinlich hat sich gar nichts geändert.

Ändert sich in dem Fall wenigstens die Sprache links in der Navigationsleiste?

Wolle02

Zitat von: jemu75 am 14 Dezember 2022, 22:54:11
Ändert sich in dem Fall wenigstens die Sprache links in der Navigationsleiste?

Ja, das tut es. Auch die Datumsanzeige in der Titelzeile erscheint dann englisch.

jemu75

#14
Das ist echt verzwickt. Ich denke das bekommen wir aber über den Debugmodus raus. Den kannst du in der config.json aktivieren. In den Templates werden dann oben rechts weitere Symbole angezeigt. Wenn du dort auf {...} klickst, dann wird dir das Jason-Objekt von deinem Fhem Device angezeigt. In dieser Ansicht kannst du auch Statusänderungen von jedem reading live mitverfolgen. Hier wäre interessant, ob der Parameter "Time" in dem betreffenden Reading den Zeitstempel im richtigen Format liefert (YYYY-MM-DD hh:mm:ss)
Kannst du dir das bitte mal ansehen. Gern auch das Json-Ergebnis mal rauskopieren und hier posten.

PS. Wichtig ist, dass du dir das Format vom Zeitstempel ansiehst, bevor und nachdem das Reading aktualisiert wurde

Grüße
Jens  :)