AMAD goes Tasker

Begonnen von Schlimbo, 16 Dezember 2017, 22:08:42

Vorheriges Thema - Nächstes Thema

Schlimbo

AMAD & Tasker
Um Android Geräte über FHEM zu steuern gibt es von CoolTux das tolle Modul AMAD (https://forum.fhem.de/index.php/topic,72373.0.html), um die Steuerbefehle auf dem Gerät auszuführen wurde in der Vergangenheit zwingend die APP "Automagic" benötigt.
Da ich für Automatisierungsaufgaben auf meinen Androiden schon lange die APP "Tasker" verwende und keine Zusätzliche APP für AMAD installieren wollte, habe ich mal angefangen die Automagic Flows mit Tasker umzusetzen.
Das Tasker Projekt das ist noch kein 100%iger Ersatz für Automagic,
es werden noch nicht alle Steuerbefehle und Readings unterstützt, hier hoffe ich auf etwas Unterstützung von euch, da ich für manche Funktionen noch keine Lösung gefunden habe, wie sie mit Tasker umgesetzt werden könnten.

Ein großer Unterschied zu Automagic ist, dass es in Tasker keinen integrierten Webserver gibt, der die Steuerbefehle entgegen nehmen kann, hierfür wird eine weitere APP benötigt.
Es gibt verschiedene Möglichkeiten die Steuerbefehle zu Tasker zu bekommen, folgende Wege sind im Modul integriert:
Der Nutzer kann also selbst entscheiden, wie er die Steuerbefehle an Tasker weiterreicht.
Der Zustellweg wird beim define des AMADDevices oder über den Einrichtungs-Task festgelegt:
Attribut remoteServer:
ZitatTNES:  Befehle werden zu Tasker Network Event Server gesendet.
Autoremote:  Befehle werden zu Autoremote gesendet.
other:  Es werden keine Befehle über das AMAD Modul gesendet, der Anwender muss sich selbst um die Zustellung, durch triggern auf das Reading "lastSetCommand", kümmern.

Zustellung über "other":
Wem die beiden integrierten Zustellmöglichkeiten nicht ausreichen, kann sich auch selbst um die Zustellung kümmern und mit einem Notify auf das Reading "lastSetCommand" triggern, dieses wird immer mit dem letzte Set-Kommando befüllt.
Hierdurch gibt es unzählige Möglichkeiten, wie die Kommandos zu Tasker übertragen werden können (z.B Pushover, SMS, Email...), die Steuerung des Android Gerätes ist somit nicht nur auf das Lokale Netzwerk beschränkt.

Notify Beispiel: Übertragung mit Pushover:
defmod AMADsend2Tasker notify HTC_M8.lastSetCommand:.* {fhem "set Pushover msg title=AMAD priority=-2 ".urlEncode($EVTPART1)}

Voraussetzungen
Android Version >= 5.0
Tasker  >= 5.8

Ersteinrichtung:
Für die Ersteinrichtung auf dem Android Gerät gibt es eine Eingabemaske (Scene), in der die benötigten Parameter (Device Name, Device IP, Bridgeport usw.) eingegeben werden können, diese Felder werden (soweit möglich) automatisch befüllt, können aber auch manuell angepasst werden.
Hierfür den Task "AMAD" ausführen.
Für schnellen Zugriff kann für diesen Task auch ein Tasker-Shortcut auf dem Homescreen angelegt werden.
Infos zu den einzelnen Einstellungen erhält man durch einen Touch auf das jeweiligen Textfeld.
Sind alle Eingaben vollständig, kann das AMAD Device über die Schaltfläche "create Device" erstellt werden. --> Autocreate muss hierzu in FHEM aktiviert sein.

Entwicklungsstand:
Hier, alle Set-Befehle - aus der AMAD Commandref:
(rot markierte funktionieren mit Tasker noch nicht)
ZitatSET
activateVoiceInput - aktiviert die Spracheingabe
bluetooth - on/off, aktiviert/deaktiviert Bluetooth
clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Tasker Meldungen in der Statusleiste --> "All" benötigt Root Rechte
closeCall - beendet einen laufenden Anruf
currentFlowsetUpdate - öffnet eine Webseite (Taskernet) über die das Projektes importiert werden kann
installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben. BSP: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml
doNotDisturb - schaltet den nicht stören Modus, always immer stören, never niemals stören, alarmClockOnly nur Wecker darf stören, onlyImportant nur wichtige Störungen
mediaPlay - play command to media App
mediaStop - stop command to media App
mediaNext - skip Forward command to media App
mediaBack - skip Backward to media App
nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std.
openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s
screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.
screenMsg - versendet eine Bildschirmnachricht
sendintent - sendet einen Intentstring Bsp: set $AMADDeviceDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, der erste Befehl ist die Aktion und der zweite das Extra. Es können immer zwei Extras mitgegeben werden.
sendSMS - sendet eine SMS an eine bestimmte Telefonnummer. Bsp.: sendSMS Dies ist ein Test|555487263
startDaydream - startet den Daydream
statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder.
timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Minuten angegeben werden.
ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird (um die Sprache für diese eine Durchsage zu ändern setze vor Deinem eigentlichen Text &en; oder &de;)
userFlowState - aktiviert oder deaktiviert einen oder mehrere Tasker Profile,SET NEXUS7WOHNZIMMER BADEZIMMER VORHEIZEN:INACTIVE ODER SET NEXUS7WOHNZIMMER BADEZIMMER VORHEIZEN,NACHTLICHT STEVEN:INACTIVE
userFlowRun - führt den angegebenen Task aus
vibrate - lässt das Androidgerät vibrieren
volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert. Der maximale Sliderwert kann über das Attribut setVolMax geregelt werden.
volumeUp - erhöh;t die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
volumeDown - reduziert die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
volumeNotification - setzt die Benachrichtigungslautstärke.

SET ABHÄNGIG VON GESETZTEN ATTRIBUTEN
changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. ATTRIBUT SETBLUETOOTHDEVICE MUSS GESETZT SEIN. SIEHE HINWEIS UNTEN!
notifySndFile - spielt die angegebene Mediadatei auf dem Androidgerät ab. DIE AUFZURUFENDE MEDIADATEI SOLLTE SICH IM ORDNER /STORAGE/EMULATED/0/NOTIFICATIONS/ BEFINDEN. IST DIES NICHT DER FALL KANN MAN ÜBER DAS ATTRIBUT SETNOTIFYSNDFILEPATH EINEN PFAD VORGEBEN.
nfc - schaltet nfc an oder aus /on/offATTRIBUT ROOT
openApp - öffnet eine ausgewählte App. ATTRIBUT SETOPENAPP
openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das ATTRIBUT SETOPENURLBROWSER ausgewählt wurde. BSP: attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name
setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern --> Muss direkt in der Tasker Scene ausgewählt werden
screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht. ATTRIBUT SETSCREENONFORTIMER ändert die Zeit wie lange das Display an bleiben soll! --> Es wird nur screen off unterstützt
screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. ATTRIBUT SETFULLSCREEN benötigt :"Write Secure Setting Permission"
screenLock - Sperrt den Bildschirm mit Pinabfrage. ATTRIBUT SETSCREENLOCKPIN - HIER DIE PIN DAFÜR EINGEBEN. ERLAUBT SIND NUR ZAHLEN. ES MÜSSEN MINDESTENS 4, BIS MAX 16 ZEICHEN VERWENDET WERDEN.
screenOrientation - Auto/Landscape/Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). ATTRIBUT SETSCREENORIENTATION
system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) ATTRIBUT ROOT, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden
setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/
setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0
setTtsMsgLang - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)
setTtsMsgVol - wenn gesetzt wird der Wert als neues Media Volume fü die Sprachansage verwendet und danach wieder der alte Wert eingestellt
setVolUpDownStep - setzt den Step für volumeUp und volumeDown
setVolMax - setzt die maximale Volume Gr&uoml;e für den Slider
setNotifyVolMax - setzt den maximalen Lautstärkewert für Benachrichtigungslautstärke für den Slider
setRingSoundVolMax - setzt den maximalen Lautstärkewert für Klingellautstärke für den Slider

Readings:
ZitatREADINGS
airplanemode - Status des Flugmodus
androidVersion - aktuell installierte Androidversion
automagicState - Statusmeldungen von TASKER
batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=Überhitzt, 4=tot, 5=Überspannung, 6=unbekannter Fehler, 7=kalt)
batterytemperature - Temperatur der Batterie
bluetooth - on/off, Bluetooth Status an oder aus
checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, SIEHE HINWEIS UNTEN
connectedBTdevices - eine Liste der verbundenen Gerät --> mit Tasker wird aktuell nur das zuletzt verbunden Gerät angezeigt
connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte --> mit Tasker wird aktuell nur das zuletzt verbunden Gerät angezeigt
currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers
currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music)
currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
currentMusicIcon - Cover vom aktuell abgespielten Album NOCH NICHT FERTIG IMPLEMENTIERT
currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers
currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
daydream - on/off, Daydream gestartet oder nicht
deviceState - Status des Androidgerätes. unknown, online, offline.
doNotDisturb - aktueller Status des nicht stören Modus
dockingState - undocked/docked Status ob sich das Gerät in einer Dockinstation befindet.
flow_SetCommands - active/inactive, Status des SetCommands Flow
flow_informations - active/inactive, Status des Informations Flow
flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device
incomingCallerName - Anrufername des eingehenden Anrufes
incomingCallerNumber - Anrufernummer des eingehenden Anrufes
incomingWhatsAppMessage - letzte WhatsApp Nachricht
incomingTelegramMessage - letzte Telegram Nachricht
intentRadioName - zuletzt gesrreamter Intent Radio Name
intentRadioState - Status des IntentRadio Players
keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist
lastSetCommandError - letzte Fehlermeldung vom set Befehl
lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl
lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
nextAlarmDay - aktiver Alarmtag
nextAlarmState - aktueller Status des "Androidinternen" Weckers
nextAlarmTime - aktive Alarmzeit
nfc - Status des NFC on/off
nfcLastTagID - nfc_id des zu letzt gescannten Tag's.
powerLevel - Status der Batterie in %
powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA
screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt
screenBrightness - Bildschirmhelligkeit von 0-255
screenFullscreen - on/off, Vollbildmodus (An,Aus)
screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal)
screenOrientationMode - auto/manual, Modus für die Ausrichtung (Automatisch, Manuell)
state - aktueller Status
userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut
volume - Media Lautstärkewert
volumeNotification - Benachrichtigungs Lautstärke
wiredHeadsetPlugged - 0/1 gibt an ob ein Headset eingesteckt ist oder nicht

Über Unterstützung zu den Fehlenden Readings und set-Commands wäre ich sehr Dankbar.

Im Anhang befindet sich die Tasker Projekt Datei, dieses kann in Tasker über die Import Funktion geladen werden.

Das Icon ,,TaskerFHEM_icon.png" sollte in den Tasker Ordner auf dem Android Gerät kopiert werden
Zitatz.B /storage/emulated/0/Tasker/.icn/Eigene Icons/TaskerFHEM_icon.png
ist der Ordner  ,,.icn/Eigene Icons" nicht vorhanden muss dieser selbst angelegt werden.
Alternativ kann zum Automatischen erstellen der Task "AMAD_generate_Icon" ausgeführt werden, dieser Task erstellt das Icon dann automatisch.

Da die Tasker Unterstützung noch nicht im offiziellen AMAD Modul integriert ist, wird aktuell noch die Vorabversion von CoolTux benötigt:
https://github.com/LeonGaultier/fhem-AMAD/tree/master

Seit 28.02.2018 im offiziellen AMAD Modul (ab V 4.2.0) enthalten.

Viel Spaß beim Testen

Anleitung zum Updaten des Tasker-Projekts auf dem Android Gerät:
Alte Methode
Zitat von: Schlimbo am 12 April 2018, 16:09:13

  • In FHEM ein "set <device> currentFlowsetUpdate" ausführen, dadurch landet das aktuelle Tasker-Projekt auf dem Device (/storage/emulated/0/Tasker/projects/AMAD.prj.xml).
  • In Tasker das AMAD Projekt in der unteren Leiste anklicken --> Delete --> Delete Contents.
  • Das neue AMAD Projekt importieren.
  • Tasker mit der zurück Taste verlassen.
  • Fertig.
NEUE Methode
Ab Version v4.2.4 (26.10.2018) kann das Tasker Projekt über einen shareLink einfach importiert und aktualisiert werden.
Infos hierzu: https://tasker.joaoapps.com/userguide/en/sharecreation.html
Der Link zum Projekt: Taskernet Link: AMAD

Problem: TNES wird unregelmäßig selbst beendet
Zitat von: Schlimbo am 04 April 2018, 20:56:15
Hallo Raemsna,
Das Problem habe ich auch schon beobachtet, leider habe ich hierfür noch keine Lösung gefunden.
Hatte auch mit der Profil De/Aktivierung experimentiert, das seltsame ist, dass diese Lösung gut funktioniert, wenn es händisch in der Tasker GUI ausgeführt wird, will man es aber über einen Task automatisierten klappt es nicht mehr.

Wegen den Intents hatte ich schon mal den Entwickler von TNES angeschrieben, aber leider auch keine hilfreiche Antwort bekommen:
https://github.com/BidoisMorgan/http-event-tasker-plugin/issues/1#issuecomment-360992279

Bin deshalb auf Autoremote umgestiegen.

Version für Android <= 4.4 (ohne Support):
https://forum.fhem.de/index.php/topic,81167.msg785269.html#msg785269
Zitat von: Schlimbo am 22 März 2018, 21:10:48
Da es zwischen Tasker 4 und 5 schon einige Unterschiede gibt, kann es durchaus sein, dass nicht alles funktioniert. Das Projekt ist für Tasker 5 erstellt worden (Also für Geräte ab Android 5.0), habe jetzt nur ein paar Dinge abgeändert, damit es auf v4 lauffähig ist. Neu Funktionen werde ich hier aber dann nicht mehr nachziehen, da ich sonst zwei Module pflegen müsste.

UPDATE v0.2 (10.01.2018)

  • Sicherheitsfeature: AMAD ID Überprüfung hinzugefügt.

UPDATE v0.22 (21.01.2018)

  • add currentFlowsetUpdate to setCommands.
  • add setCommand: "takePicture".
  • add reading: "incommingSmsText".
  • add reading: "intentRadioName|State".
  • fix sendIntent.
  • parallele Ausführung von setCommands.

UPDATE v0.23 (30.01.2018)

  • add reading: "incommingTelegramMessageFrom".
  • add reading: "incommingWhatsAppMessageFrom".
  • intigrate Start/Stop Autoremote WIFI Server
  • new mediaButton Control
  • add Deezer Control

UPDATE v0.24 (11.02.2018)

  • rename reading: "incommingTelegramMessageFrom" to "incomingTelegramMessage".
  • rename reading: "incommingWhatsAppMessageFrom" to "incomingWhatsAppMessage".
  • rename reading: "incommingSmsText" to "incomingSmsMessage".
  • add sms sender to Reading incomingSmsMessage.
  • add setCommand: "currentFlowsetUpdate".

UPDATE v0.26 (27.03.2018)

  • fix toGo Profil "Active: Any".
  • rename toGo Profils.
  • add takeScreenshot
  • add mediaControl for MXPlayerPro & Poweramp.
  • add Media Readings for Poweramp.

UPDATE v4.2.2 (06.04.2018)

  • add setCommand: "screenBrightnessMode".
  • add reading: "screenBrightnessMode".

UPDATE v4.2.3 (10.06.2018)

  • change reading name powerLevel to batteryPercent (Forum:87575)

UPDATE v4.2.4 (26.10.2018)

UPDATE v4.2.4 (15.11.2018)

  • add Call readings:
  • incomingCallerName
  • incomingCallerNumber
  • incomingCallerStatus (IDLE|RINGING|OFFHOOK)
  • outgoingCallerName
  • outgoingCallerNumber
  • outgoingCallerStatus (IDLE|RINGING|OFFHOOK)

UPDATE v4.4.1 (02.05.2019) required Tasker v5.7

  • add reading: "nfcLastTagID"

UPDATE v4.4.2 (24.07.2019) required Tasker v5.8

  • add setCommand: "changetoBTDevice"
  • add reading: "connectedBTdevices"
  • add reading: "connectedBTdevicesMAC"
  • add reading: "currentMusicAlbum"
  • add reading: "currentMusicApp"
  • add reading: "currentMusicArtist"
  • add reading: "currentMusicIcon"
  • add reading: "currentMusicState"
  • add reading: "currentMusicTrack"
  • change all deprecated "HTTP post" action to the new "HTTP Request" action

UPDATE v4.4.3 (14.10.2019) required Tasker v5.8

  • TTS: disable "Continue Task Immediately" Forum
  • fix: incomingWhatsAppMessage & incomingTelegramMessage Forum
  • add reading: "deviceModel" <manufacturer> <model>
  • Profile "AMAD_alarm": Change trigger for alarm change detection"
  • Task "getAlarm": use AutoAlarm if installed Forum
  • openApp: use Tasker action "Launch App" instead of java function

UPDATE v4.4.4 (09.09.2020) required Tasker v5.10

  • AMAD_getDeviceIP: use Tasker action "WiFi IP address" if shell command fails

CoolTux

Kannst Du mal bitte von der neuen Version das other testen? Danke Dir
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

Schlimbo

Das Anlegen über autocreate klappt jetzt ohne Absturz.
Im Log stehen aber noch ein paar Meldungen:
2017.12.16 23:23:39.040 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 805.
2017.12.16 23:23:39.063 2: autocreate: define HTC_M8 AMADDevice 192.168.5.81 1513463013 other IODev=myAmadBridge
2017.12.16 23:23:39.064 3: AMADDevice (HTC_M8) - I/O device is myAmadBridge
2017.12.16 23:23:39.101 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 447.
2017.12.16 23:23:39.104 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 206.
2017.12.16 23:23:39.105 3: AMADDevice (HTC_M8) - defined with AMAD_ID: 1513463013 on port
2017.12.16 23:23:39.117 2: autocreate: define FileLog_HTC_M8 FileLog ./log/HTC_M8-%Y.log HTC_M8
2017.12.16 23:23:42.112 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 352.


CoolTux

Wow Du bist ja fix. Schaue ich mir morgen an. Habe auch eben einen aktuallisiertes Flowset hochgeladen.
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

CoolTux

Neue Version im Devel Zweig auf dem AMAD Git. Magst Du mal bitte schauen. Habe nun die IODev im define komplett raus genommen und als Attribut zur Verfügung gestellt.

Ich bereite nun die aktuell stabile Version mit einem Update vor damit wir die User vorsichtig auf die neue Define vorbereiten. Wenn alles so klappt wie ich es mir vorstelle sollten die User gar nichts davon merken.
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

CoolTux

@Schlimbo
Ich habe heute bei mir die Version 4.0.12 im Produktivsystem installiert. Funktioniert super. Es wird automatisch die DEF auf das neue Format angepasst.
Daher ist das Update auch verpflichtend für einen reibungslosen Sprung auf Version 4.2
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

Schlimbo

Hallo Leon,
wie muss denn jetzt ein define aussehen?
Hab den Parameter IODev gelöscht, bekomme aber trotzdem:
define HTC_M8 AMADDevice 192.168.5.81 1513419694 TNES: too few parameters: define <name> AMADDevice <HOST-IP> <amad_id> <remoteServer>


Autocreate geht auch nicht mehr:

2017.12.19 19:08:30.597 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 805.
2017.12.19 19:08:30.621 2: autocreate: define SONY_XPERIA AMADDevice 192.168.5.82 1513706905 TNES
2017.12.19 19:08:30.622 1: define SONY_XPERIA AMADDevice 192.168.5.82 1513706905 TNES: too few parameters: define <name> AMADDevice <HOST-IP> <amad_id> <remoteServer>
2017.12.19 19:08:30.623 1: ERROR: too few parameters: define <name> AMADDevice <HOST-IP> <amad_id> <remoteServer>
2017.12.19 19:08:31.861 1: ERROR: empty name in readingsBeginUpdate
2017.12.19 19:08:31.862 1: stacktrace:
2017.12.19 19:08:31.862 1:     main::readingsBeginUpdate           called by fhem.pl (4574)
2017.12.19 19:08:31.863 1:     main::readingsSingleUpdate          called by ./FHEM/74_AMADDevice.pm (380)
2017.12.19 19:08:31.864 1:     main::AMADDevice_WriteReadings      called by ./FHEM/74_AMADDevice.pm (751)
2017.12.19 19:08:31.864 1:     main::AMADDevice_Parse              called by fhem.pl (3696)
2017.12.19 19:08:31.864 1:     main::Dispatch                      called by ./FHEM/73_AMADCommBridge.pm (807)
2017.12.19 19:08:31.865 1:     main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (709)
2017.12.19 19:08:31.865 1:     main::AMADCommBridge_ProcessRead    called by ./FHEM/73_AMADCommBridge.pm (632)
2017.12.19 19:08:31.866 1:     main::AMADCommBridge_Read           called by fhem.pl (3500)
2017.12.19 19:08:31.866 1:     main::CallFn                        called by fhem.pl (702)
2017.12.19 19:08:31.867 1: readingsUpdate(,state,active) missed to call readingsBeginUpdate first.
2017.12.19 19:08:31.867 1: stacktrace:
2017.12.19 19:08:31.867 1:     main::readingsBulkUpdate            called by fhem.pl (4575)
2017.12.19 19:08:31.868 1:     main::readingsSingleUpdate          called by ./FHEM/74_AMADDevice.pm (380)
2017.12.19 19:08:31.868 1:     main::AMADDevice_WriteReadings      called by ./FHEM/74_AMADDevice.pm (751)
2017.12.19 19:08:31.869 1:     main::AMADDevice_Parse              called by fhem.pl (3696)
2017.12.19 19:08:31.869 1:     main::Dispatch                      called by ./FHEM/73_AMADCommBridge.pm (807)
2017.12.19 19:08:31.869 1:     main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (709)
2017.12.19 19:08:31.870 1:     main::AMADCommBridge_ProcessRead    called by ./FHEM/73_AMADCommBridge.pm (632)
2017.12.19 19:08:31.870 1:     main::AMADCommBridge_Read           called by fhem.pl (3500)
2017.12.19 19:08:31.871 1:     main::CallFn                        called by fhem.pl (702)
2017.12.19 19:08:31.871 1: ERROR: empty name in readingsBeginUpdate
......


Muss im firstrun jetzt auch noch etwas geändert werden?

CoolTux

Schau Mal bitte. Im Device Modul wird in der Define Funktion geschaut wie viel Elemente @a hat. @ =! 4 steht da glaube. Änder das Mal auf 5 und reloade das Modul. Dann noch mal testen
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

Schlimbo

Sieht schon besser aus, aber irgendetwas stimmt trotzdem nicht:
2017.12.19 20:46:14.639 2: autocreate: define HTC_M8 AMADDevice 192.168.5.81 1513712769 TNES
2017.12.19 20:46:14.651 3: HTC_M8: unknown attribute IODev. Type 'attr HTC_M8 ?' for a detailed list.
2017.12.19 20:46:14.669 3: AMADDevice (HTC_M8) - I/O device is myAmadBridge_192.168.5.81_50389
2017.12.19 20:46:14.706 3: AMADDevice (HTC_M8) - defined with AMAD_ID: 1513712769 on port 8765
2017.12.19 20:46:14.718 2: autocreate: define FileLog_HTC_M8 FileLog ./log/HTC_M8-%Y.log HTC_M8
2017.12.19 20:46:17.820 3: AMADDevice (myAmadBridge_192.168.5.81_50389) - GetUpdate, Please set myAmadBridge_192.168.5.81_50389 fhemServerIP <IP-FHEM> NOW!
2017.12.19 20:46:23.394 3: AMADDevice (myAmadBridge_192.168.5.16_43179) - GetUpdate, Please set myAmadBridge_192.168.5.16_43179 fhemServerIP <IP-FHEM> NOW!

CoolTux

Der hat mir wieder mein IODev Attribut raus gehauen. Habe gerade ein Update hochgeladen
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

Schlimbo

Danke, eine Meldung hab ich noch:
2017.12.19 21:45:43.962 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 805.
2017.12.19 21:45:44.163 2: autocreate: define HTC_M8 AMADDevice 192.168.5.81 1513716309 TNES
2017.12.19 21:45:44.166 3: AMADDevice (HTC_M8) - I/O device is myAmadBridge
2017.12.19 21:45:44.203 3: AMADDevice (HTC_M8) - defined with AMAD_ID: 1513716309 on port 8765
2017.12.19 21:45:44.215 2: autocreate: define FileLog_HTC_M8 FileLog ./log/HTC_M8-%Y.log HTC_M8

CoolTux

Zitat von: Schlimbo am 19 Dezember 2017, 21:48:57
2017.12.19 21:45:43.962 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 805.

Das ist diese Zeile hier

Log3 $bname, 4, "AMADCommBridge ($bname) - AMADCommBridge: processing receive reading values - Device: $fhemDevice Data: $decode_json->{payload}" unless( defined($decode_json->{payload}) and ($decode_json->{payload}) );

Kann ich mir selber gerade nicht erklären was ihm da fehlt.
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

Schlimbo

Das muss ich mir Morgen noch mal genauer anschauen, beim Anlegen über Automagic bekomme ich diesen Eintrag nicht.
Beim Testen ist mir gerade noch aufgefallen, dass im Automagic Flow V 4.1.99.1, der firstrun noch nicht passt:
\"remoteServer\": \"Automagic\"
remoteServer muss klein geschrieben werden:
\"remoteserver\": \"Automagic\"

CoolTux

Guten Morgen,

Vielen vielen Dank für Dein ausführliches testen. Änder ich dann.



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/
Das TuxNet Wiki:
https://www.cooltux.net

Schlimbo

Hallo Leon,
bei einem Device mit remoteServer "other" gibt es ja keinen Port, deswegen bekomme ich dann folgende Meldungen im Log:
2017.12.20 11:27:59.105 2: autocreate: define HTC_M9 AMADDevice 192.168.5.201 1513765666 other
2017.12.20 11:27:59.109 3: AMADDevice (HTC_M9) - I/O device is myAmadBridge
2017.12.20 11:27:59.149 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 198.
2017.12.20 11:27:59.150 3: AMADDevice (HTC_M9) - defined with AMAD_ID: 1513765666 on port

2017.12.20 11:28:02.167 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 344.
2017.12.20 11:28:02.198 4: AMADCommBridge (myAmadBridge) - AMADCommBridge_Write Path: /fhem-amad/deviceInfo/

Könntest du das noch abfangen, oder den Port in Zeile 153 einfach auf irgendeinen Wert setzten (z.B "-")?