Neues Modul: 72_TA_CMI_JSON (Technische Alternative UVR16x2, UVR1611, CMI, ...)

Begonnen von delMar, 02 November 2018, 10:38:08

Vorheriges Thema - Nächstes Thema

CoolTux

Das POSIX Modul bietet Perlschnittstellen zum IEEE-Standard 1003.1
Sie hält Funktionen bereit für Standard ein und Ausgabe Kanäle des Betriebssystems oder für Signalhändling
Ob Du Posix nun brauchst kann ich Dir nicht sagen. Da musst Du mal schauen.

Selbst nach einem use HttpUtils muss man die Funktionen welche man verwenden möchte in GP_Import einfügen.

Performancegründe gibt es für package nicht soweit mir bekannt. Es hat mehr den Zweck der Namensraumabgrenzung, so das man bei selbigen Funktionsnamen die Funktion des einen oder anderen Modules nicht überschrieben wird.
Wenn man Opjektorientiert Programmieren möchte mit Perl muß man eh mit Packages arbeiten.
Aktuell versuche ich eine Möglichkeit zu schaffen das man auf die FHEM Funktionen aus fhem.pl ohne das GP_Import zugreifen kann. Hierfür werde ich ein object erstellen lassen welches dann die Möglichkeit eines Funktionsaufrufes über das Object bietet.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

delMar

Zitat von: CoolTux am 04 November 2018, 13:54:24
Das POSIX Modul bietet Perlschnittstellen zum IEEE-Standard 1003.1
Sie hält Funktionen bereit für Standard ein und Ausgabe Kanäle des Betriebssystems oder für Signalhändling
Ob Du Posix nun brauchst kann ich Dir nicht sagen. Da musst Du mal schauen.
Alles klar, für die Packages brauch ich Posix also nicht. Mehr wollte ich garnicht wissen, danke.

Zitat von: CoolTux am 04 November 2018, 13:54:24
Selbst nach einem use HttpUtils muss man die Funktionen welche man verwenden möchte in GP_Import einfügen.
Ok, ich habs vermutet. Weil HttpUtils selber auch im 'main' Package liegt, richtig?
Gibts hier auch Bestrebungen, das zu ändern? DevIo wäre dann wohl der nächste wichtige Kandidat...

Zitat von: CoolTux am 04 November 2018, 13:54:24
Aktuell versuche ich eine Möglichkeit zu schaffen das man auf die FHEM Funktionen aus fhem.pl ohne das GP_Import zugreifen kann. Hierfür werde ich ein object erstellen lassen welches dann die Möglichkeit eines Funktionsaufrufes über das Object bietet.
Ja, das wäre spitze. Ich würde viel lieber einfach zB fhem.readingsBulkUpdate(...) aufrufen (oder fhem::readingsBulkUpdate(...)), als alle diese Imports machen zu müssen.

Wenns für dich ok ist, würde ich lieber abwarten, bis diese neuen Strukturen verfügbar sind. Dann werde ich den Code sehr gerne umbauen. Derzeit hab ich noch nicht das Gefühl, dass die Packages etwas zur wartbarkeit oder lesbarkeit des Codes beitragen - weil noch sehr viel Boilerplate.

Halt mich hier aber bitte unbedingt auf dem Laufenden

Danke!
Schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

GrazPi

Hallo Martin,
vielen Dank, die _unit und _Pretty-Readings funktionieren!
Einzig das _RAS kommt noch nicht durch, es wird als Nr. 11 vom Logging Analog mitgeschickt { "Number":11, "AD":"A", "Value":{ "Value":20.9, "Unit":"46", "RAS":"0" } }, aber im entsprechenden Reading (Hier in allen Varianten) erscheint es noch nicht:
T_WoZi         20.9     2018-11-04 20:39:56
T_WoZi_Pretty  20.9 °C  2018-11-04 20:39:56
T_WoZi_Unit    °C       2018-11-04 18:07:54


Vielen Dank für deine klasse Arbeit,
Lutz
FHEM prod auf RazBerry 3, Dev auf virtuellem RasPi

delMar

Zitat von: GrazPi am 04 November 2018, 21:34:49
Einzig das _RAS kommt noch nicht durch
Potentielles update auf GitHub, bitte bei Gelegenheit mal ausprobieren
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

GrazPi

Danke, nun ist auch _RAS verfügbar!
T_WoZi        21.0        2018-11-04 21:37:42
T_WoZi_Pretty 21.0 °C     2018-11-04 21:37:42
T_WoZi_RAS    Time/auto   2018-11-04 22:45:22
T_WoZi_Unit   °C          2018-11-04 18:07:54
FHEM prod auf RazBerry 3, Dev auf virtuellem RasPi

delMar

Zitat von: GrazPi am 04 November 2018, 22:50:23
Danke, nun ist auch _RAS verfügbar!
T_WoZi        21.0        2018-11-04 21:37:42
T_WoZi_Pretty 21.0 °C     2018-11-04 21:37:42
T_WoZi_RAS    Time/auto   2018-11-04 22:45:22
T_WoZi_Unit   °C          2018-11-04 18:07:54

Cool, danke.

Der tatsächliche RAS-Wert (0 in diesem Fall) wäre für Auswertungen (notify, doif) wahrscheinlich sinnvoller, als der Text - welcher wiederum was fürs Auge bietet.
Ich tendiere dazu, _RAS für den tatsächlichen Wert zu verwenden, und ebenfalls ein _RAS_Pretty für den Text einzuführen.
Deine Meinung?

schöne grüße
Martin

Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

GrazPi

Hallo Martin,
gute Idee! Dann wären Alarme wie "Heizung ist aus UND Wohnzimmer hat nur noch 16 °C" sehr leicht realisierbar.
Der/Das RAS (Bild: https://www.ta.co.at/fileadmin/_processed_/4/b/csm_RASPT_34d07cbc27.png) ist übrigens nur ein verstellbarer Temperaturfühler mit zusätzlichem Schiebeschalter - deshalb kommen nur bei diesem Sensor zwei Werte, Temperatur und Schalterposition.

Beste Grüße,
Lutz
FHEM prod auf RazBerry 3, Dev auf virtuellem RasPi

delMar

Hallo Lutz,
Zitat von: GrazPi am 05 November 2018, 16:15:42
gute Idee! Dann wären Alarme wie "Heizung ist aus UND Wohnzimmer hat nur noch 16 °C" sehr leicht realisierbar.
Alles klar, Update liegt auf GitHub zum Ausprobieren.

Was bisher _RAS war, ist jetzt _RAS_Pretty und wird dem Namen entsprechend auch nur dann geschrieben, wenn includePrettyReadings aktiviert ist.
Unter _RAS wird nun der Wert von 0-3 geschrieben, wie in der Doku angegeben.

Wenn du das erfolgreich getestet hast, geb ich's ins SVN.
Danke, dass du so ein williges Test-Opfer bist :-)
Und danke für das Bild vom RAS, das Teil kannte ich tatsächlich noch nicht.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

GrazPi

Hallo Martin,
kann leider erst am Freitag wieder testen.

Vielen Dank und beste Grüße,
Lutz
FHEM prod auf RazBerry 3, Dev auf virtuellem RasPi

Haus-Andi

Hallo Martin

Super Modul von dir, vielen Dank für deine Arbeit daran. Ich habe soeben mein CMI und UVR16x2 innerhalb einer halben Stunde eingebunden. Da ich vorläufig keine Schaltbefehle ausführen will genügt mir das absolut so.

Nochmals vielen Dank
Gruss Andi
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

delMar

Zitat von: Haus-Andi am 19 November 2018, 21:40:25
Hallo Martin

Super Modul von dir, vielen Dank für deine Arbeit daran. Ich habe soeben mein CMI und UVR16x2 innerhalb einer halben Stunde eingebunden. Da ich vorläufig keine Schaltbefehle ausführen will genügt mir das absolut so.

Nochmals vielen Dank
Gruss Andi

Hallo Andi
Freut mich, dass das so problemlos lief
Danke für das Feedback

Schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

tremichl

Hallo Martin,
vielen Dank für das Modul und die tolle Arbeit! Habe bisher viel Zeit gebraucht um mittels Schema und HTTPMOD an die Werte der UVR1611 heran zu kommen. Mit deinem Modul war das eine Angelegenheit von einigen Minuten. Super!

Noch eine Frage: Die 1611 hat ja 16 Eingänge und Ausgänge. Ich habe alle gemäß deiner Anleitung definiert. Als readings sehe ich aber die Ausgänge 14, 15, 16 nicht. Hat das einen bestimmten Grund?

Nochmals Danke!
LG Michael

   
Wir haben keine Ahnung davon, was wir nicht wissen

Haus-Andi

Hallo Martin

Also das mit den Ausgängen funktioniert bei mir nicht. Mein Heizungsmonteur hat die beiden Ausgänge 3 und 4 irgendwie verbunden. So das ich auf der Tabelle eigentlich nur 1,2,3,5,6,7 sehe.

Wobei 1:unbenutzt 2:Rücklaufhochhaltung 3+4:Kesselventil 5:Brennerfreigabe ist. Wenn ich jetzt das Wicki und Beschreibung richtig verstehe müsste jetzt eigentlich auf dem TA_Output_Reading dann die Position 3 eigentlich die Brennerfreigabe sein. Nur bekomme ich, damit gleich die Meldung "Abfrage überlauf".
Ich gehe mal davon aus, das ich da was falsch gemacht habe. (bin im Büro und habe kein Fernzugriff aufs fhem zuhause, darum kein Code).

Mein Ziel ist es eigentlich mit der Meldung "Brennerfreigabe" die Betriebsstunden zusätzlich anzeigbar zu machen und vor allem auch den Pelletsvorrat im Griff zu haben. Irgendwo gabe es mal eine Forumseintrag mit einem schönen solchen Modul. Ich hatte das auch bereits mal eingerichtet, danach konnte aber die SD-Karte nicht mehr gelesen werden. Folglich muss ich es nochmals einrichten.

Ich weiss mein UVR16x2 zeigt mir das auf dem Display auch an, aber nur zum anschauen in den Keller gehen, wenn in der Küche bereits ein Tablett hängt das den Speicher anzeigt, ist auch etwas doof.

Gruss Andi






Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

delMar

Zitat von: Haus-Andi am 21 November 2018, 13:13:24
Nur bekomme ich, damit gleich die Meldung "Abfrage überlauf".
Interessant, diese Meldung kannte ich noch nicht.
Kannst du mir dieses Response-JSON bitte mal hier reinkopieren, sobald du wieder drauf Zugriff hast?

Falls es wirklich daran liegt, dass zu viele Daten zurückkommen, kannst du mal versuchen, nicht alle Daten zu holen.
Du kannst zB als <queryParams> auch nur O nehmen und versuchen, ob das klappt. Oder zB auch mal nur O1,O2,O3
Wenn ja, musst du dir leider mehrere Devices anlegen. zb eines nur mit I, das andere nur mit O.
Allerdings wirds dann auch mit der Abstimmung der Abfragen etwas finkelig... man darf ja nur 1x pro Minute.


Zitat von: tremichl am 21 November 2018, 12:48:34
Noch eine Frage: Die 1611 hat ja 16 Eingänge und Ausgänge. Ich habe alle gemäß deiner Anleitung definiert. Als readings sehe ich aber die Ausgänge 14, 15, 16 nicht. Hat das einen bestimmten Grund?
Dazu kann ich ohne Daten leider auch nix sagen.
Kannst du hier auch mal so ein Response-JSON posten?
Und bitte auch die Ausgabe von 'list <devicename>'

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

Michael, stell bitte mal verbose auf 5. Dann solltest du im Log pro Abfrage sämtliche Werte gelistet kriegen.
Wäre interessant, ob deine Vermissten dort auch fehlen
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.