go-echarger als mqtt-device - meine Konfig

Begonnen von blueberry63, 17 November 2019, 14:59:30

Vorheriges Thema - Nächstes Thema

Beta-User

Der Trick ist: du mußt in stateFormat nach jedem Wert, der in ein Icon umgewandelt werden soll, auch einen Zeilenumbruch machen. In jeder Zeile darf nur das stehen, was der Regex für das jeweilige Icon entspricht. Kann es sein, dass du das beim Kopieren meiner Vorschläge nicht recht wahrgenommen hattest?

Und dann war da
ZitatBei mir wird aber nut "ALW: 1" angezeigt.
Das ist _mit_ einem (bei meinem Code noch nicht vorhandenen) Leerzeichen, dann mußt du noch einen weiteren dot (=beliebiges Zeichen) in die regexe einfügen, oder den wieder entfernen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

ZitatDer Trick ist: du mußt in stateFormat nach jedem Wert, der in ein Icon umgewandelt werden soll, auch einen Zeilenumbruch machen.

...das habe ich noch nicht gewuß! Hätte mir einige Nerven gerettet  ;)

DANKE!
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

Danke  für die Rückmeldung, hatte es schon "auf Verdacht" eingecheckt ;D ;) .
Zitat von: Beta-User am 26 November 2019, 12:11:05Auch die Bezeichnung Ampere ist evtl. ungünstig, sollte tendenziell auch zu amp werden, oder wir setzen JSONMAP ein, dann können beide Readings "schönere" Namen bekommen?
(Einfaches Beispiel wäre in zigbee2mqtt_ContactSensor zu finden).
Willst du dazu noch was sagen?
Mit JSONMAP könnte man amp zu Ampere umbenennen und alw auch etwas "sprechender" benennen, falls gewünscht. MMn. wäre das das "i"-Tüpfelchen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

Wenn Du die Readings umbennen kannst, dann würde ich
- amp zu "Ampere" umbennen (so ist es auch in der App genannt)
- alw zu "Aktivierung" umbennen ("")




FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

"Ich" kann schon, aber das war eigentlich als kleine Aufgabe gedacht...
Aber als Schubser dann halt ein Auszug aus readingList:
go-eCharger/007353/status:.* { json2nameValue($EVENT,'',$JSONMAP) }
Das notwendige Umbenennungs-Attribut:
attr DEVICE jsonMap alw:Aktivierung amp:Ampere
Kannst du das Testen (die Namen müssen in setList und im jsonMap zueinander passen) und dann als template-Code wieder komplett liefern, bitte?


Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

Hallo Beta-User,

im Anhang ist das Template mit den entsprechenden Änderungen. Bitte prüfe nochmal auf Syntax-Fehler  ::)

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

Hi blueberry63,

habe nochmal etwas dran rumgeschraubt, bitte (ggf. mit einer Kopie deines aktuellen Geräts) testen:
#source post: https://forum.fhem.de/index.php/topic,105457.msg993924.html#msg993924
name:go_eCharger
filter:TYPE=MQTT2_DEVICE
desc:See source post: https://forum.fhem.de/index.php/topic,105457.msg993924.html#msg993924 for details. For complete MQTT-API see https://go-e.co/app/api.pdf
order:W_02
par:BASE_ID;BASE_ID typically is go-eCharger;{ AttrVal("DEVICE","readingList","") =~ m,(go-eCharger)[/][^/]+[/].*:, ? $1 : undef }
par:SERIAL;Serial number;{ AttrVal("DEVICE","readingList","") =~ m,go-eCharger[/]([^/]+)[/].*:, ? $1 : undef }
par:ICON;ICON as set, defaults to mqtt;{ AttrVal("DEVICE","icon","mqtt") }
attr DEVICE icon ICON
attr DEVICE event-on-change-reading .*
attr DEVICE readingList BASE_ID/SERIAL/status:.* { json2nameValue($EVENT,'';$JSONMAP) }\
  BASE_ID/SERIAL/ip:.* { json2nameValue($EVENT) }
attr DEVICE setList Activation:0,1 BASE_ID/SERIAL/cmd/req alw=$EVTPART1\
  Ampere:selectnumbers,1,1,22,1,lin BASE_ID/SERIAL/cmd/req amp=$EVTPART1
attr DEVICE jsonMap alw:Activation amp:Ampere tmp:temperature
attr DEVICE stateFormat Status: charger_state \
ALW:Activation\
P_akt: energy_akt V1: nrg_1 V2: nrg_2 V3: nrg_3
attr DEVICE devStateIcon ALW.1:status_open:Activation+0 ALW.0:status_locked:Activation+1
attr DEVICE userReadings charger_state:car.* { my $val = ReadingsVal($name,"car","none");; my %rets = ("none" => "-1","1" => "Ready","2" => "Charging","3" => "waiting for car","4" => "Charging finished",);; $rets{$val}}, energy_total:eto.* { ReadingsVal($name,"eto",0)*0.1 }, energy_akt:dws.* { ReadingsVal($name,"dws",0)*2.77 }
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE model go_eCharger
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

Die "Spannungen" würde ich aus dem stateFormat rausnehmen (V1: nrg_1 V2: nrg_2 V3: nrg_3). Das ist wohl doch nicht so interessant. Ich hatte es mal eingebaut, weil ich mangels Auto (Lieferverzögerung) noch keine anderen Werte geliefert bekomme.
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

Kein Ding. Rest funktioniert (und ist soweit auch vollständig)?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

Ich kann erst heute Abend testen, melde mich.
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

#25
Das ist zwar jetzt OT, aber ich habe Probleme mit dem Update des Templates. Ich habe die Datei "goecharger.template" in "/opt/fhem/FHEM/lib/AttrTemplate" überschrieben und mit "{ AttrTemplate_Initialize() }" neu eingelesen. Anschließend werden aber nach Benutzung des Templates beim Device die alten Attribute gesetzt (das fällt mir sofort auf, da ich die 3 Spannungen aus dem Template entfernt habe).

Nach Aufruf von "{ AttrTemplate_Initialize() }" kommt folgende Ausgabe, ist das normal?


<script type="text/javascript">
    $(document).ready(function() {
      $("select.set").change(attrAct);
      function
      attrAct(){
        if($("select.set").val() == "attrTemplate") {
          $('<div id="attrTemplateHelp" class="makeTable help"></div>')
                .insertBefore("div.makeTable.internals");
          $("select.select_widget[informid$=attrTemplate]").change(function(){
            var cmd = "{AttrTemplate_Help('"+$(this).val()+"')}";
            FW_cmd(FW_root+"?cmd="+cmd+"&XHR=1", function(ret) {
              $("div#attrTemplateHelp").html(ret);
            });
          });
        } else {
          $("div#attrTemplateHelp").remove();
        }
      }
      attrAct();
    });
  </script>
  <script type="text/javascript">
    $(document).ready(function() {
      $("select.set").change(attrAct);
      function
      attrAct(){
        if($("select.set").val() == "attrTemplate") {
          $('<div id="attrTemplateHelp" class="makeTable help"></div>')
                .insertBefore("div.makeTable.internals");
          $("select.select_widget[informid$=attrTemplate]").change(function(){
            var cmd = "{AttrTemplate_Help('"+$(this).val()+"')}";
            FW_cmd(FW_root+"?cmd="+cmd+"&XHR=1", function(ret) {
              $("div#attrTemplateHelp").html(ret);
            });
          });
        } else {
          $("div#attrTemplateHelp").remove();
        }
      }
      attrAct();
    });
  </script>


Kann es sein, dass er 2 Template-Inhalte hat???
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

UPS, sorry, ist in der Vorversion im svn...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

So, ich hatte mal wieder Zeit zum Testen. Meine eigene Template-Datei habe ich gelöscht, "{ AttrTemplate_Initialize() }" ausgeführt und dann das Template angewendet. Danach kommen folgende Meldungen:


Replace
BASE_ID: with the BASE_ID typically is go-eCharger
SERIAL: with the Serial number




syntax error at (eval 1340482) line 1, at EOF
syntax error at (eval 1340482) line 1, near "$JSONMAP) "


Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Beta-User

Moin,

habe grade ein update dazu ins svn geschubst.

Die ersten Meldungen kamen vermutlich davon, dass die readingList nicht vorhanden war (?), für die beiden anderen war ein ";" statt "," verantwortlich... Sorry.

Jetzt (bzw. ab 7:50 Uhr) sollte es aber passen.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

blueberry63

Jetzt sieht es gut aus  :). Ich denke, das kann man so lassen. Falls ich im Betrieb sinnvollere Ausgaben finde, melde ich mich.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower