Autor Thema: code checkin unter fhem/lib/FHEM  (Gelesen 999 mal)

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6129
code checkin unter fhem/lib/FHEM
« am: 07 Februar 2022, 09:26:44 »
Ich werde gern unter fhem/lib/FHEM/Utilities etwas code einchecken, welcher dafür gedacht ist, dass beliebige Module auch MQTT topics abonnieren können. Das Unterverzeichnis müsste erstellt werden. Recht es wenn ich das via svn commit mache?
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 27933
Antw:code checkin unter fhem/lib/FHEM
« Antwort #1 am: 07 Februar 2022, 09:31:38 »
Hallo Jörg

Es reicht wenn Du es entsprechend commitest. Funktioniert ohne Probleme. Die entsprechenden Module müssen natürlich Dein Modul einbinden. Und es wäre zu empfehlen das Du es entsprechend als package machst.


Grüße
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/
Mein Dokuwiki:
https://www.cooltux.net

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6129
Antw:code checkin unter fhem/lib/FHEM
« Antwort #2 am: 07 Februar 2022, 09:43:28 »
Hallo Jörg

Es reicht wenn Du es entsprechend commitest. Funktioniert ohne Probleme. Die entsprechenden Module müssen natürlich Dein Modul einbinden. Und es wäre zu empfehlen das Du es entsprechend als package machst.


Grüße
perfekt, danke. package: check, einbinden (use ..): check. Noch ein wenig Qualitätskontrolle, dann checke ich das ein. Manual als pod, ich stelle das dann aber auch hier nochmal vor, mit Anleitung und Beispiel wie man es einbindet.
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2682
Antw:code checkin unter fhem/lib/FHEM
« Antwort #3 am: 07 Februar 2022, 22:04:23 »
Wenn Du es als Package bereitstellst, dann kannst Du es auch gleich im richtigen Lib VZ bereitstellen:

https://svn.fhem.de/fhem/trunk/fhem/lib/FHEM/
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6129
Antw:code checkin unter fhem/lib/FHEM
« Antwort #4 am: 10 Februar 2022, 23:11:41 »
und da liegt es jetzt auch. :)

NAME
FHEM::Utility::MQTT2_Dispatcher - Subscribe to MQTT messages in fhem modules

SYNOPSIS
        package main;
       
        use FHEM::Utility::MQTT2_Dispatcher qw( :DEFAULT );

        sub X_Define {
                ...

                $hash->{Listener} = on_mqtt('home/#', sub {
                        X_MQTT($hash, @_);
                }) or do {
                        Log3($hash, 2, $@);
                };
        };
       
        sub X_MQTT {
                my ($hash, $topic, $value, $io_name) = @_;
        };

        # required for rereadcfg etc
        sub X_Undef {
                ...
                del_mqtt($hash->{Listener});
                return;
        };

DESCRIPTION
This module provides a couple of helper functions to let a fhem module subscripe to MQTT topics using a defined MQTT2_SERVER or MQTT2_CLIENT.

FUNCTIONS
on_mqtt ($topic, sub {})
This function subscribes to a given $topic. MQTT wildcards are allowed. The MQTT2 IO device, of course, must receive that topic. The coderef can be an anonyious sub or a variable holding one. This function receive 3 params: the $topic (unicode), the $value (raw) and the $name of the receiving IO device.

Returns an identifier that is used to delete that handler at any time. Undef in case of an error.

Multiple handlers can be installed at the same time.

del_mqtt ($id)
This function removes (deletes) the handler specified with $id. It must be called in X_Undef function of the embedding fhem module.
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse
Gefällt mir Gefällt mir x 1 Liste anzeigen