Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. openLuup
  3. Plugins
  4. openLuup: Tasmota MQTT Bridge
openweather plugin ?
DesTD
Hey guys.... long time Since Dark weather is no more active, thanks Apple. Anyone switch to openweather to get weather data ?
Plugins
Openluup: Datayours
D
Hi akbooer, I've an installation with a centralized openluup/DY on Debian 11 where're archived and consolidated several remote openluup/DY on RPI. I'm also using a user-defined (defined with your support) "DataUser.lua" to process metrics and creating different metric names. I've a schema of this configuration but I can't upload on forum. I'd like to manage outage network connections between remote and centralized system while the remote DY is running and archives data locally. I see the whisper-fill.py python routine (https://github.com/graphite-project/whisper/blob/master/bin/whisper-fill.py) from Graphite tool. I know that DY/whisper format is different from Graphite/whisper (CSV vs. binary packing), but based on your deep knowledge and experience is it hard to adapt the fill routine to DY/whisper format ? tnks donato
Plugins
openLuup: Shelly Bridge plugin
akbooerA
Feedback / solutions with openLuup's built-in Shelly bridge.
Plugins
zigbee2mqtt and openLuup
A
Been using zigbee2mqtt and openLuup for sometime now and it is working well. I attempted to add another Hue switch to-day. It's a newer version of the other ones I have been using so far. They are pretty much identical. The older ones installed no problem (which is weird), but the new one won't. Looking at the code, it looks this function in L_Zigbee2MQTTBridge.lua: configure_scene_controller(dno) is not being passed the parameter "dno" when the function is called. The device is created but is incomplete. Just out of interest how do you pretty print to the log from within say L_Zigbee2MQTTBridge.lua? I tried a few incarnations such a: local pretty = openLuup.loader.shared_environment.pretty but they all failed.
Plugins
UPnP event proxy plugin using systemd service file
A
Originally I was using Futzle's UPnP event proxy plugin on Vera with the Sonos plugin. Worked very well. On making the move to openLuup, one finds that the proxy can't be used because the proxy daemon start and stop, etc uses a script installed by the plugin that only works on openWRT, as used by Vera. The Sonos plugin still works without the proxy but it reverts to polling. It becomes a bit on the sluggish side and sometimes doesn't function quite as intended. I've modified the proxy plugin to install a script that runs as a systemd service. systemd can be found on a lot of contemporary Linux installs, including Raspberry Pis. To make use of; just install the plugin from the AltUI app store and restart the Luup engine a couple of times. The dashboard should indicate "Status: Proxy running". Note that the service file expects "L_UPnPProxyDaemon.lua" to be located at the typical plugin files location: /etc/cmh-ludl/ After the plugin is installed, the service file should be found in: /etc/systemd/system/ as UPnPProxy.service. If you use the Sonos plugin, you need to change the variable "UseProxy" to "1" and restart the LuupEngine. In the Sonos parent device, you should see: "Running x zones; proxy detected". Updated doco here. Hope it works - YMMV.
Plugins
Sonos system alerts truncated
A
Well pretty sure I didn't change or touch anything! I've turned everything on and off again as one might hope. Excepting a total reboot of the Pi3 that's running all my stuff very reliably in openLuup. It's all been working well for years and now all of sudden 6 second alerts are truncated to about 4 seconds. Occasionally it works as it should. I see this in the log - does it help? 2023-02-20 09:39:06.662 luup_log:0: My Lua ver 0.50 debug: executing scene 63: "Check windows doors" in room: "Watchers" 2023-02-20 09:39:06.663 luup.call_action:: 217.urn:micasaverde-com:serviceId:Sonos1.Alert 2023-02-20 09:39:06.663 luup.call_action:: action will be handled by parent: 214 2023-02-20 09:39:06.663 luup_log:0: My Lua ver 0.50 debug: rest of scene 63 was executed 2023-02-20 09:39:06.663 luup.scenes:: scene 63, Check windows doors, initiated by AltUI 2023-02-20 09:39:06.665 luup_log:214: Sonos: Alert action on device 217 URI "http://redacted:3480/www/sounds/AllClosed.mp3" duration "6" 2023-02-20 09:39:06.758 luup_log:214: Sonos: UPnP_request (Pause, urn:schemas-upnp-org:service:AVTransport:1): status=1 statusMsg=500 result=[<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>] 2023-02-20 09:39:06.759 luup_log:214: stack traceback: ./L_SonosSystem1.lua:265: in function 'error' ./L_SonosUPnP.lua:289: in function <./L_SonosUPnP.lua:169> (tail call): ? ./L_SonosSystem1.lua:3390: in function 'sayOrAlert' ./L_SonosSystem1.lua:3452: in function 'queueAlert' ./L_SonosSystem1.lua:3843: in function <./L_SonosSystem1.lua:3839> (tail call): ? [C]: in function 'pcall' ./openLuup/scheduler.lua:204: in function 'context_switch' ./openLuup/scheduler.lua:366: in function 'dispatch' ./openLuup/scheduler.lua:588: in function 'task_callbacks' ./openLuup/scheduler.lua:699: in function 'start' openLuup/init.lua:354: in main chunk [C]: ? 2023-02-20 09:39:06.888 luup.variable_set:: 214.urn:toggledbits-com:serviceId:SonosSystem1.zoneInfo was: {"zones":{"RINCON_000E58DC7BBE01400":{"Location":"http://redacted3:1400/xml/device_description.xml","Group":"RIN... now: {"zones":{"RINCON_000E58DC7BBE01400":{"Location":"http://redacted3:1400/xml/device_description.xml","Group":"RIN... #hooks:0 2023-02-20 09:39:06.895 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.TransportState was: STOPPED now: TRANSITIONING #hooks:0 2023-02-20 09:39:06.901 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentPlayMode was: SHUFFLE_NOREPEAT now: NORMAL #hooks:0 2023-02-20 09:39:06.913 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentTransportActions was: Set, Stop, Pause, Play, X_DLNA_SeekTime, Next, X_DLNA_SeekTrackNr now: Set, Stop, Pause, Play, X_DLNA_SeekTime, X_DLNA_SeekTrackNr #hooks:0 2023-02-20 09:39:06.921 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.NumberOfTracks was: 10 now: 1 #hooks:0 2023-02-20 09:39:06.922 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.AVTransportURI was: x-rincon-queue:RINCON_000E58DC7BBE01400#0 now: http://redacted:3480/www/sounds/AllClosed.mp3 #hooks:0 2023-02-20 09:39:11.929 luup_log:214: Sonos: UPnP_request() "urn:schemas-upnp-org:service:AVTransport:1"#"GetPositionInfo" action took 5.0073010921478s (long) 2023-02-20 09:39:11.932 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentTrackDuration was: 0:02:22 now: 0:00:00 #hooks:0 2023-02-20 09:39:11.933 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentTrackURI was: x-file-cifs://ELEPHANT1/Multimedia/My%20Music/Music%20JP/The%20Smiths/The%20Queen%20Is%20Dead/08%20Vicar%20in%20a%2... now: http://redacted:3480/www/sounds/AllClosed.mp3 #hooks:0 2023-02-20 09:39:11.934 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentTrackMetaData was: <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r... now: <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r... #hooks:0 2023-02-20 09:39:11.936 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentStatus was: Vicar in a Tutu: (The Smiths, The Queen Is Dead) now: AllClosed.mp3 #hooks:0 2023-02-20 09:39:11.937 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentTitle was: Vicar in a Tutu now: AllClosed.mp3 #hooks:0 2023-02-20 09:39:11.937 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentArtist was: The Smiths now: #hooks:0 2023-02-20 09:39:11.938 luup.variable_set:: 217.urn:upnp-org:serviceId:AVTransport.CurrentAlbum was: The Queen Is Dead now: #hooks:0 Also see these: 2023-02-24 16:12:13.576 openLuup.server:: GET /www/sounds/YouRang.mp3 HTTP/1.1 tcp{client}: 0x17e96f0 2023-02-24 16:12:13.579 openLuup.server:: error 'closed' sending 43102 bytes to tcp{client}: 0x17e96f0 So any clues?
Plugins
Generic support for vacuums
therealdbT
I've got myself a nice Ecovacs Deebot 950, because one of the Roombas is getting really old (12 years and still going strong). It's my first one connected to WiFi, since the others are legacy. I've found a nice mqtt library and it's already pushing to my broker in real time, but I'm wondering if there's a generic device template and/or service, otherwise I'll start building one and I'll try to keep it as much generic as possible.
Plugins
Switchboard plugin
D
Topic thumbnail image
Plugins
Cannot publish new version in ALTAPP Store
M
Hi @akbooer, I have an updated version of one of my plugins but I cannot publish it in the ALTApp Store. When I click publish it gets in a sort of loop of Refreshing Token.../Token refreshed. However, I never get to page to refresh the token. Looking at the browser debug window I see this as the response to http://192.168.178.101:3480/data_request?id=lr_ALTUI_Handler&command=refresh_auth_token {"error":{"code":400,"message":"Bad Request - invalid_grant","step":"Get access token from refresh token"}} Running openLuup v21.7.25. Any suggestion? Cheers Rene
Plugins
openLuup: UI Device / Tile Text
parkercP
Topic thumbnail image
Plugins
Reactor scope issues
B
Topic thumbnail image
Plugins
Virtual Devices Plug-in update (with async HTTP support)
therealdbT
I just published an update to my Virtual Devices Plug-in. What's new in version 1.5: support for async HTTP (out of the box on openluup, just download https://github.com/akbooer/openLuup/blob/master/openLuup/http_async.lua and copy with the plug-in files on Vera) experimental support for setpoints management in Virtual Heaters (you know, the device will turn itself off if temperature is reached, and automatically on when temperature is not beyond the setpoint) external device for temperature in Virtual Heaters (just set urn:bochicchio-com:serviceId:VirtualHeater1/TemperatureDevice variable) small fixes, stabilization Grab your copy from https://github.com/dbochicchio/vera/tree/master/VirtualDevices As always, 100% local, 100% apps friendly, 100% supported by Alexa (and Google Home, I guess).
Plugins
AltUI will not update under openLuup (Vera: not sure what it does)
A
This topic has come up before but I haven't seen an answer. Symptom: AltuUI says there is a new update available, so you tell it to do the update but the update does not happen. AltUI remains stuck on it's old version. On other occasions it works OK. So my version is: AltUI v2.49.2546, © 2019 AltUI says this: a newer version #2551 of ALTUI is available, do you want to upgrade ? add scrollable dialog for long boxes bugfix: clock display on safari remote url update ( @olov ) update jquery and bootstrap versions credential to camera device url ( @rafale77 ) ignore Ezlo hub ( @reneboer) Track through the JavaScript and find that this issues the update command: function _triggerAltUIUpgrade(newversion,newtracnum) { var url = '?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=8246&Version={1}&TracRev={0}'.format(newversion,newtracnum); return _httpGet(url,{}).always( function() { PageMessage.message(_T("Upgrade Request succeeded, a Luup reload will happen"),"success"); }); }; And the url variable equals: url: "?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=8246&Version=40628&TracRev=2551" All looks good so far. I manually issue the same url complete with my openLuup ip_address in a local browser. Update fails - looks like AltUI is doing as it should: http://ip_address:3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=8246&Version=40628&TracRev=2551 In openLuup I see: 2021-12-06 13:56:14.821 luup_log:3: ALTUI: startupDeferred, called on behalf of device:3 2021-12-06 13:56:14.838 luup.variable_set:: 3.urn:upnp-org:serviceId:altui1.Version was: v2.49 now: v2.49 #hooks:0 And then later: 2021-12-06 13:55:58.256 openLuup.server:: GET /data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=8246&Version=40628&TracRev=2551 HTTP/1.1 tcp{client}: 0x25712a8 2021-12-06 13:55:58.257 luup.call_action:: 0.urn:micasaverde-com:serviceId:HomeAutomationGateway1.CreatePlugin 2021-12-06 13:55:58.259 luup.call_action:: 4.urn:upnp-org:serviceId:AltAppStore1.update_plugin 2021-12-06 13:55:58.260 luup_log:4: AltAppStore : starting <run> phase... 2021-12-06 13:55:58.262 luup_log:4: AltAppStore : downloading amg0/ALTUI [2551] to trash/AltAppStore/ 2021-12-06 13:55:58.262 luup_log:4: AltAppStore : GitHub request: https://api.github.com/repos/amg0/ALTUI/contents?ref=2551 2021-12-06 13:55:58.760 luup_log:4: AltAppStore : GitHub request: https://api.github.com/repos/amg0/ALTUI/contents/blockly?ref=2551 2021-12-06 13:55:59.543 luup_log:4: AltAppStore : getting contents of version: 2551 2021-12-06 13:55:59.544 luup.variable_set:: 4.urn:upnp-org:serviceId:altui1.DisplayLine1 was: AltAppStore now: Downloading... #hooks:0 2021-12-06 13:55:59.544 luup.variable_set:: 4.urn:upnp-org:serviceId:altui1.DisplayLine2 was: now: Alternate UI #hooks:0 2021-12-06 13:55:59.544 luup_log:4: AltAppStore : scheduling <job> phase... 2021-12-06 13:55:59.544 openLuup.requests:: 2021-12-06 13:55:59.545 openLuup.server:: request completed (148 bytes, 1 chunks, 1288 ms) tcp{client}: 0x25712a8 2021-12-06 13:55:59.554 openLuup.server:: request completed (6233 bytes, 1 chunks, 16442 ms) tcp{client}: 0x255e680 2021-12-06 13:55:59.555 luup_log:4: AltAppStore : ...final <job> phase 2021-12-06 13:55:59.555 luup_log:4: AltAppStore : Total size 0.000 (kB) 2021-12-06 13:55:59.555 luup.variable_set:: 4.urn:upnp-org:serviceId:altui1.DisplayLine2 was: Alternate UI now: Alternate UI 100% #hooks:0 2021-12-06 13:55:59.555 luup_log:4: AltAppStore : updating icons in icons/ ... 2021-12-06 13:55:59.555 luup_log:4: AltAppStore : updating device files in ./ ... 2021-12-06 13:55:59.556 luup_log:4: AltAppStore : ... 0 icon files 2021-12-06 13:55:59.556 luup_log:4: AltAppStore : ... 0 device files 2021-12-06 13:55:59.556 luup_log:4: AltAppStore : Alternate UI update completed 2021-12-06 13:55:59.556 openLuup.luup:: device 4 'Alternate App Store' requesting reload 2021-12-06 13:55:59.556 luup.reload:: saving user_data 2021-12-06 13:56:00.262 openLuup.luup:: exiting with code 42 - after 0.3 hours All looks OK. Then I check GitHub. It shows the latest changes to the version 2551. However this page says the latest version is 2550. So I wondering what's going on. Seems the latest version number is not being picked by the installer? (not sure how it works.) Is it possible for openLuup to log a bit more about the version it's trying to install. As this call returns. https://api.github.com/repos/amg0/ALTUI/contents?ref=2551 message "No commit found for the ref 2551" documentation_url "https://docs.github.com/v3/repos/contents/" But this works fine: https://api.github.com/repos/amg0/ALTUI/contents?ref=2550 So it looks like AMG0 doesn't always update the repository with whatever is needed to get this to work (I imagine that's easy to forget). But could openLuup send back a fail result to AltUI and AltUI pick that up? Currently it looks like AltUI always assumes everything went OK. Or somehow; could openLuup log and/or notify the user what went wrong?
Plugins
Reactor: double click action
R
Hi @toggledbits and others, Could you help me out with the following use case? I have a z-wave module that doesn't have scene functionality, but I want to trigger a double click action on the switch. What is the easiest way to do this in reactor? I'm struggling with this and I think I'm thinking too complex at this point.
Plugins
Virtual Pronto Remote plugin
A
Topic thumbnail image
Plugins
openLuup: SmartSwitch plugin
akbooerA
This plugin was updated by @vosmont to run under openLuup (and possibly UI7.) @DesT recently asked for a slight addition to its functionality, so I'm adding this thread to discuss the changes.
Plugins
Reactor icons for local lan
B
@toggledbits Hi Patrick. I had my internet go down for about 12 hours the other day, and that experience encouraged me to work on getting my HA off the cloud to the extent that I can. I have not converted my Veras to local devices yet, though after the next VeraPlus stable firmware release, I will probably run your scripts to localize the device as I don't see Ezlo surviving to maintain Vera firmware. My question concerns the icons in your plugins. While attempting to mod a reactor sensor during the outage, I could not really do anything (without a sense of risk anyway) as the icons used are pulled from your website. Many Vera plugins operate this way--no doubt to save space on the vera, and my inclination was to manually start downloading what I needed when the outage was over. I run everything on openLuup and space is not an issue. It occurred to me that localizing a plugin could be a button push somewhere in the plugin UI where one could auto download any needed icons and the plugin would recognize the local copy first, before trying the cloud. Could this be a possible enhancement to your plugins? I don't really have a technical grasp of whether this would be workable or not.
Plugins
openLuup: Tasmota MQTT Bridge
akbooerA
Feedback / solutions for openLuup's built-in Tasmota MQTT bridge.
Plugins
AltUi
C
I reinstalled the AltUi plugin on OpenLuup and I no longer access its web interface I have the following error: error in callback [lr_ALTUI_Handler]: ./dkjson.lua:397: bad argument # 1 to 'strfind' (string expected, got nil) Can someone help me? OpenLuup version 2021.05.08
Plugins
AltUI sort?
CatmanV2C
Am I losing it or did there used to be a sort either alphabetically or numerically option on devices in AltUI? Seems to not be there there? TIA C
Plugins

openLuup: Tasmota MQTT Bridge

Scheduled Pinned Locked Moved Plugins
127 Posts 5 Posters 26.5k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • therealdbT therealdb

    @archers said in openLuup: Tasmota MQTT Bridge:

    2021-05-11 10:05:35.103 luup.variable_set:: 52.urn:bochicchio-com:serviceId:VirtualHeater1.SetPowerURL was: EMPTY now: http:// #hooks:0
    2021-05-11 10:05:35.103 luup.variable_set:: 52.urn:bochicchio-com:serviceId:VirtualHeater1.SetPowerOffURL was: EMPTY now: http:// #hooks:0

    This is by design. As you can see, you've not set SetPowerURL and SetPowerOffURL to anything significant, like the mqtt message, so it's not sending anything, and it's acting with the default behavior: if you're not replying with 200-ish HTTP response, it will not change variables. When using mqtt:// prefix, it will update immediately.

    I'll work on this anyway, since it's not sending temperature command at the moment, but I think it's a good addition in your use case - and to other people as well.

    Please try with mqtt commands and let me know, because I have it working good.

    EDIT: it's done, just set SetSetpointURL variable to

    mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":%s,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
    

    (notice the %s). it's sending the temperature that's set. it's beta3 on GitHub, from master branch.

    A Offline
    A Offline
    ArcherS
    wrote on last edited by ArcherS
    #101

    @therealdb my feeling was that I had missed something.
    Yes I think it could be a good usecase.

    Edit: I got to send the Mqtt message a few times, but not every time. Not sure why it does not send every time though. Does it matter if it is "off" or "heat"?

    Edit 2: It seems as if it works! 🙂 Mode "off" and then the set temp sends the Mqtt message. Maybe if was a poll delay or something. I will test some more.

    I tried to add the above mqtt:// into the SetSetpoint URL but nothing seems to be sent, i.e. nothing is appearing in the Tasmota Console.

    This is what I see in the log (device no 52):

    2021-05-12 20:18:02.023   openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=843427346&Timeout=60&MinimumDelay=1500&_=1620843427214 HTTP/1.1 tcp{client}: 0x1b09e50
    2021-05-12 20:18:14.970   openLuup.server:: GET /data_request?id=action&output_format=json&DeviceNum=52&serviceId=urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&action=SetCurrentSetpoint&NewCurrentSetpoint=19 HTTP/1.1 tcp{client}: 0x2204008
    2021-05-12 20:18:14.972   luup.call_action:: 52.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.SetCurrentSetpoint 
    2021-05-12 20:18:14.973   openLuup.server:: request completed (44 bytes, 1 chunks, 2 ms) tcp{client}: 0x2204008
    2021-05-12 20:18:20.877   openLuup.server:: GET /console?page=log.1 HTTP/1.1 tcp{client}: 0x2204008
    2021-05-12 20:18:20.981   openLuup.server:: request completed (185478 bytes, 0 chunks, 102 ms) tcp{client}: 0x2204008
    2021-05-12 20:18:21.107   openLuup.server:: GET /favicon.ico HTTP/1.1 tcp{client}: 0x2204008
    2021-05-12 20:18:21.107   openLuup.servlet:: file not found:favicon.ico
    2021-05-12 20:18:21.108   openLuup.server:: request completed (126 bytes, 0 chunks, 0 ms) tcp{client}: 0x2204008
    2021-05-12 20:18:21.108   openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x2204008
    2021-05-12 20:18:23.314   openLuup.io.server:: HTTP:3480 connection from 192.168.1.145 tcp{client}: 0x1c7ed70
    2021-05-12 20:18:23.316   openLuup.server:: GET /console?page=log HTTP/1.1 tcp{client}: 0x1c7ed70
    

    I also tried with a number, e.g. "20" instead of %s but no difference.

    Startup log, it seems as if I have the right version:

    2021-05-12 20:29:18.833   luup_log:52: VirtualHeater starting...
    2021-05-12 20:29:18.834   luup_log:52: VirtualDevices[3.0-beta3@52]:Plugin starting
    2021-05-12 20:29:18.834   luup.device_message:: device=52, status=4, message=Starting..., timeout=5, source=VirtualDevices
    2021-05-12 20:29:18.834   luup_log:52: VirtualDevices[3.0-beta3@52]:Child #52 - "VirtualHeater2"
    2021-05-12 20:29:18.835   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:HVAC_UserOperatingMode1.ModeTarget
    2021-05-12 20:29:18.837   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:HVAC_UserOperatingMode1.ModeStatus
    2021-05-12 20:29:18.838   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSetpoint1.CurrentSetpoint
    2021-05-12 20:29:18.840   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.CurrentSetpoint
    2021-05-12 20:29:18.841   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSensor1.CurrentTemperature
    2021-05-12 20:29:18.841   luup.set_failure:: status = 0
    2021-05-12 20:29:18.841   luup.variable_set:: 52.urn:micasaverde-com:serviceId:HaDevice1.CommFailure was: 0 now: 0 #hooks:0
    2021-05-12 20:29:18.842   luup.variable_set:: 52.urn:micasaverde-com:serviceId:HaDevice1.CommFailureTime was: 0 now: 0 #hooks:0
    2021-05-12 20:29:18.842   openLuup.scheduler:: [52] VirtualHeater2 device startup completed: status=true, msg=Ready, name=VirtualDevices
    
    therealdbT 1 Reply Last reply
    0
    • A ArcherS

      @therealdb my feeling was that I had missed something.
      Yes I think it could be a good usecase.

      Edit: I got to send the Mqtt message a few times, but not every time. Not sure why it does not send every time though. Does it matter if it is "off" or "heat"?

      Edit 2: It seems as if it works! 🙂 Mode "off" and then the set temp sends the Mqtt message. Maybe if was a poll delay or something. I will test some more.

      I tried to add the above mqtt:// into the SetSetpoint URL but nothing seems to be sent, i.e. nothing is appearing in the Tasmota Console.

      This is what I see in the log (device no 52):

      2021-05-12 20:18:02.023   openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=843427346&Timeout=60&MinimumDelay=1500&_=1620843427214 HTTP/1.1 tcp{client}: 0x1b09e50
      2021-05-12 20:18:14.970   openLuup.server:: GET /data_request?id=action&output_format=json&DeviceNum=52&serviceId=urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&action=SetCurrentSetpoint&NewCurrentSetpoint=19 HTTP/1.1 tcp{client}: 0x2204008
      2021-05-12 20:18:14.972   luup.call_action:: 52.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.SetCurrentSetpoint 
      2021-05-12 20:18:14.973   openLuup.server:: request completed (44 bytes, 1 chunks, 2 ms) tcp{client}: 0x2204008
      2021-05-12 20:18:20.877   openLuup.server:: GET /console?page=log.1 HTTP/1.1 tcp{client}: 0x2204008
      2021-05-12 20:18:20.981   openLuup.server:: request completed (185478 bytes, 0 chunks, 102 ms) tcp{client}: 0x2204008
      2021-05-12 20:18:21.107   openLuup.server:: GET /favicon.ico HTTP/1.1 tcp{client}: 0x2204008
      2021-05-12 20:18:21.107   openLuup.servlet:: file not found:favicon.ico
      2021-05-12 20:18:21.108   openLuup.server:: request completed (126 bytes, 0 chunks, 0 ms) tcp{client}: 0x2204008
      2021-05-12 20:18:21.108   openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x2204008
      2021-05-12 20:18:23.314   openLuup.io.server:: HTTP:3480 connection from 192.168.1.145 tcp{client}: 0x1c7ed70
      2021-05-12 20:18:23.316   openLuup.server:: GET /console?page=log HTTP/1.1 tcp{client}: 0x1c7ed70
      

      I also tried with a number, e.g. "20" instead of %s but no difference.

      Startup log, it seems as if I have the right version:

      2021-05-12 20:29:18.833   luup_log:52: VirtualHeater starting...
      2021-05-12 20:29:18.834   luup_log:52: VirtualDevices[3.0-beta3@52]:Plugin starting
      2021-05-12 20:29:18.834   luup.device_message:: device=52, status=4, message=Starting..., timeout=5, source=VirtualDevices
      2021-05-12 20:29:18.834   luup_log:52: VirtualDevices[3.0-beta3@52]:Child #52 - "VirtualHeater2"
      2021-05-12 20:29:18.835   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:HVAC_UserOperatingMode1.ModeTarget
      2021-05-12 20:29:18.837   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:HVAC_UserOperatingMode1.ModeStatus
      2021-05-12 20:29:18.838   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSetpoint1.CurrentSetpoint
      2021-05-12 20:29:18.840   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.CurrentSetpoint
      2021-05-12 20:29:18.841   luup.variable_watch:: callback=virtualThermostatWatch, watching=52.urn:upnp-org:serviceId:TemperatureSensor1.CurrentTemperature
      2021-05-12 20:29:18.841   luup.set_failure:: status = 0
      2021-05-12 20:29:18.841   luup.variable_set:: 52.urn:micasaverde-com:serviceId:HaDevice1.CommFailure was: 0 now: 0 #hooks:0
      2021-05-12 20:29:18.842   luup.variable_set:: 52.urn:micasaverde-com:serviceId:HaDevice1.CommFailureTime was: 0 now: 0 #hooks:0
      2021-05-12 20:29:18.842   openLuup.scheduler:: [52] VirtualHeater2 device startup completed: status=true, msg=Ready, name=VirtualDevices
      
      therealdbT Offline
      therealdbT Offline
      therealdb
      wrote on last edited by
      #102

      @archers temp is sent for set target only, but I could add easily to power on/off.

      --
      On a mission to automate everything.

      My MS Reactor contrib
      My Luup Plug-ins

      A 1 Reply Last reply
      0
      • therealdbT therealdb

        @archers temp is sent for set target only, but I could add easily to power on/off.

        A Offline
        A Offline
        ArcherS
        wrote on last edited by
        #103

        @therealdb said in openLuup: Tasmota MQTT Bridge:

        @archers temp is sent for set target only, but I could add easily to power on/off.

        Thanks for all the effort! It could be a useful addition for a more generic usecase, i.e. to have the posibility to add on/off in the same way as for temperature with a vaiable similar to %s.
        I tested on my Fujitsu and "Power":"On" resp "Power":"Off" in the Mqtt message turns it on and off so it seems quite straight forward.

        For my particular usecase I may go in a slightly different direction. My idea is to put the Tasmota IR so that it can both send commands to the HVAC and also that it can capture commands from the remote via Mqtt and IrReceived.
        I have tested this a bit and it seems to work quite well. I setup at Reactor pulling the data sent from the remote to the HVAC and also sending data to the HVAC, so far only when changing the temp, but I may add e.g. fan speed.

        therealdbT 1 Reply Last reply
        0
        • A ArcherS

          @therealdb said in openLuup: Tasmota MQTT Bridge:

          @archers temp is sent for set target only, but I could add easily to power on/off.

          Thanks for all the effort! It could be a useful addition for a more generic usecase, i.e. to have the posibility to add on/off in the same way as for temperature with a vaiable similar to %s.
          I tested on my Fujitsu and "Power":"On" resp "Power":"Off" in the Mqtt message turns it on and off so it seems quite straight forward.

          For my particular usecase I may go in a slightly different direction. My idea is to put the Tasmota IR so that it can both send commands to the HVAC and also that it can capture commands from the remote via Mqtt and IrReceived.
          I have tested this a bit and it seems to work quite well. I setup at Reactor pulling the data sent from the remote to the HVAC and also sending data to the HVAC, so far only when changing the temp, but I may add e.g. fan speed.

          therealdbT Offline
          therealdbT Offline
          therealdb
          wrote on last edited by
          #104

          @archers heater is a bit behind the others, where I’m already supporting mqtt messages to update values. I could add it easily over the weekend. You’ll find two variables to update. Send me your messages, so I could try to replicate it and give you precise instructions. It’s one of the things I’ll change in my setup, so it’s work I’m doing for myself as well 😉

          --
          On a mission to automate everything.

          My MS Reactor contrib
          My Luup Plug-ins

          A 1 Reply Last reply
          0
          • therealdbT therealdb

            @archers heater is a bit behind the others, where I’m already supporting mqtt messages to update values. I could add it easily over the weekend. You’ll find two variables to update. Send me your messages, so I could try to replicate it and give you precise instructions. It’s one of the things I’ll change in my setup, so it’s work I’m doing for myself as well 😉

            A Offline
            A Offline
            ArcherS
            wrote on last edited by
            #105

            @therealdb for my Fujutsu unit:

            Message to turn off device:

            mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"Off","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
            

            Message to turn on device:

            mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
            

            I do not know if it would be possible to control the fan also, I am not sure there is a good controller for it. If so the fan is controlled with the "Fanspeed" being set to five values 1-4 and auto: "Min", "Low", "Medium", Max" and "Auto" e.g.

            mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Max","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
            
            therealdbT 1 Reply Last reply
            0
            • A ArcherS

              @therealdb for my Fujutsu unit:

              Message to turn off device:

              mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"Off","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
              

              Message to turn on device:

              mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
              

              I do not know if it would be possible to control the fan also, I am not sure there is a good controller for it. If so the fan is controlled with the "Fanspeed" being set to five values 1-4 and auto: "Min", "Low", "Medium", Max" and "Auto" e.g.

              mqtt://cmnd/TasmotaIR/IRhvac/=/{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Max","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
              
              therealdbT Offline
              therealdbT Offline
              therealdb
              wrote on last edited by
              #106

              @archers after we’re done with heaters, I’ll definitely add a thermostat to the mix, even if it’s a mess and it’s not easy. In the meantime, you could control it with a dimmer. Maybe it’s time to add transformation to the mix, so we could easily produce a range (1…4) from 0/100.

              Anyway, I was speaking of mqtt messages to get the status, if available in your use case - ie when changing the mode via the official remote.

              --
              On a mission to automate everything.

              My MS Reactor contrib
              My Luup Plug-ins

              A 1 Reply Last reply
              0
              • therealdbT therealdb

                @archers after we’re done with heaters, I’ll definitely add a thermostat to the mix, even if it’s a mess and it’s not easy. In the meantime, you could control it with a dimmer. Maybe it’s time to add transformation to the mix, so we could easily produce a range (1…4) from 0/100.

                Anyway, I was speaking of mqtt messages to get the status, if available in your use case - ie when changing the mode via the official remote.

                A Offline
                A Offline
                ArcherS
                wrote on last edited by ArcherS
                #107

                @therealdb I also thought of using a dimmer or something similar. 🙂

                When I press the remote and the IR reveiver in the Tasmota captures that I get an IrReceived message in the Console:

                07:45:47 MQT: tele/TasmotaIR/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930400400000000206C","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                

                It always contains the same elements as above, i.e. it reports all of the status fields every time.

                So e.g. when changing the fan to "Min":

                01:57:31 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE09304004040000002068","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                IRVAC{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
                

                The FanSpeed values are:
                "FanSpeed":"Min"
                "FanSpeed":"Low"
                "FanSpeed":"Medium"
                "FanSpeed":"Max"
                "FanSpeed":"Auto"

                When powered on:

                01:55:23 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930410400000000206B","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                

                When powered off:

                00:26:45 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":56,"Data":"0x0x146300101002FD","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Off","Power":"Off","Celsius":"On","Temp":16,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                

                For some reason it also sends "Mode":"Off" when powered off and not only "Power":"Off"

                When changing mode you get for the four modes:
                "Mode":"Heat"
                "Mode":"Cool"
                "Mode":"Dry"
                "Mode":"Auto"

                When I have looked in the Tasmota IR wiki there is some info on this also.
                Both the IrReceived and IRhvac send protocols seem quite generic in terms of the mode, fan speed etc.

                therealdbT 2 Replies Last reply
                0
                • A ArcherS

                  @therealdb I also thought of using a dimmer or something similar. 🙂

                  When I press the remote and the IR reveiver in the Tasmota captures that I get an IrReceived message in the Console:

                  07:45:47 MQT: tele/TasmotaIR/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930400400000000206C","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                  

                  It always contains the same elements as above, i.e. it reports all of the status fields every time.

                  So e.g. when changing the fan to "Min":

                  01:57:31 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE09304004040000002068","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                  IRVAC{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
                  

                  The FanSpeed values are:
                  "FanSpeed":"Min"
                  "FanSpeed":"Low"
                  "FanSpeed":"Medium"
                  "FanSpeed":"Max"
                  "FanSpeed":"Auto"

                  When powered on:

                  01:55:23 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930410400000000206B","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                  

                  When powered off:

                  00:26:45 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":56,"Data":"0x0x146300101002FD","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Off","Power":"Off","Celsius":"On","Temp":16,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                  

                  For some reason it also sends "Mode":"Off" when powered off and not only "Power":"Off"

                  When changing mode you get for the four modes:
                  "Mode":"Heat"
                  "Mode":"Cool"
                  "Mode":"Dry"
                  "Mode":"Auto"

                  When I have looked in the Tasmota IR wiki there is some info on this also.
                  Both the IrReceived and IRhvac send protocols seem quite generic in terms of the mode, fan speed etc.

                  therealdbT Offline
                  therealdbT Offline
                  therealdb
                  wrote on last edited by
                  #108

                  @archers it should be easy to get the status, since the commands are easily sent. I’ll add the support for status over the week-end.

                  --
                  On a mission to automate everything.

                  My MS Reactor contrib
                  My Luup Plug-ins

                  1 Reply Last reply
                  1
                  • A ArcherS

                    @therealdb I also thought of using a dimmer or something similar. 🙂

                    When I press the remote and the IR reveiver in the Tasmota captures that I get an IrReceived message in the Console:

                    07:45:47 MQT: tele/TasmotaIR/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930400400000000206C","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                    

                    It always contains the same elements as above, i.e. it reports all of the status fields every time.

                    So e.g. when changing the fan to "Min":

                    01:57:31 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE09304004040000002068","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                    IRVAC{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}
                    

                    The FanSpeed values are:
                    "FanSpeed":"Min"
                    "FanSpeed":"Low"
                    "FanSpeed":"Medium"
                    "FanSpeed":"Max"
                    "FanSpeed":"Auto"

                    When powered on:

                    01:55:23 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":128,"Data":"0x0x1463001010FE0930410400000000206B","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                    

                    When powered off:

                    00:26:45 RSL: tele/tasmota_E0D649/RESULT = {"IrReceived":{"Protocol":"FUJITSU_AC","Bits":56,"Data":"0x0x146300101002FD","Repeat":0,"IRHVAC":{"Vendor":"FUJITSU_AC","Model":1,"Mode":"Off","Power":"Off","Celsius":"On","Temp":16,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
                    

                    For some reason it also sends "Mode":"Off" when powered off and not only "Power":"Off"

                    When changing mode you get for the four modes:
                    "Mode":"Heat"
                    "Mode":"Cool"
                    "Mode":"Dry"
                    "Mode":"Auto"

                    When I have looked in the Tasmota IR wiki there is some info on this also.
                    Both the IrReceived and IRhvac send protocols seem quite generic in terms of the mode, fan speed etc.

                    therealdbT Offline
                    therealdbT Offline
                    therealdb
                    wrote on last edited by therealdb
                    #109

                    @archers ok, new build is on GitHub.

                    51931fef-76c9-494a-8611-dc275fa7635f-image.png

                    if you want to match for tele/tasmota_E0D649/RESULT topic with a message that contains IrReceived.IRHVAC.Power and a value of Off (case sensitive) use

                    tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off
                    

                    As you can see, we could also match a path and get its value:

                    tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Temp/=/*
                    

                    I've also added the ability to get the current temperature via MQTT as well. I'll update the docs later, with the new formats.

                    --
                    On a mission to automate everything.

                    My MS Reactor contrib
                    My Luup Plug-ins

                    A 1 Reply Last reply
                    1
                    • therealdbT therealdb

                      @archers ok, new build is on GitHub.

                      51931fef-76c9-494a-8611-dc275fa7635f-image.png

                      if you want to match for tele/tasmota_E0D649/RESULT topic with a message that contains IrReceived.IRHVAC.Power and a value of Off (case sensitive) use

                      tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off
                      

                      As you can see, we could also match a path and get its value:

                      tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Temp/=/*
                      

                      I've also added the ability to get the current temperature via MQTT as well. I'll update the docs later, with the new formats.

                      A Offline
                      A Offline
                      ArcherS
                      wrote on last edited by ArcherS
                      #110

                      @therealdb said in openLuup: Tasmota MQTT Bridge:

                      if you want to match for tele/tasmota_E0D649/RESULT topic with a message that contains IrReceived.IRHVAC.Power and a value of Off (case sensitive) use

                      Should it be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc?

                      I tried both with and without "mqtt://" but I cannot see any changes on the varibles of the device.
                      Checked the log and it says beta 4 so it should be installed properly.

                      Edit: problem solved, see below.
                      The variables I have for the device are as below, there could very well be something wrong with them; I have not yet got full controll of the settings for heater device. 😕

                      A 1 Reply Last reply
                      0
                      • A ArcherS

                        @therealdb said in openLuup: Tasmota MQTT Bridge:

                        if you want to match for tele/tasmota_E0D649/RESULT topic with a message that contains IrReceived.IRHVAC.Power and a value of Off (case sensitive) use

                        Should it be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc?

                        I tried both with and without "mqtt://" but I cannot see any changes on the varibles of the device.
                        Checked the log and it says beta 4 so it should be installed properly.

                        Edit: problem solved, see below.
                        The variables I have for the device are as below, there could very well be something wrong with them; I have not yet got full controll of the settings for heater device. 😕

                        A Offline
                        A Offline
                        ArcherS
                        wrote on last edited by ArcherS
                        #111

                        @therealdb now it works! 🙂
                        I managed to find what I think was the error. I somehow some time ago have managed to copy all the VirtualDevices files into a sub-folder in the cmh-ludl folder. Stupid error my my side that gave a lot of strange behaviour...
                        I simply removed the sub-folder and reloaded the master branch from the "plugins" tab in AltUi and then it worked as it should.

                        The variables are now:
                        660ce881-17d4-49cf-a48c-de85f34d4b9d-image.png

                        In other words it should be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc i.e. with the mqtt:// prefix.

                        Thanks for a great addition to the plugin, I will play some more with this one and see that it works as supposed. 🙂

                        Edit: I discovered that the changing the temp on the OpenLuup device via "SetSetpointURL" does only work when the "ModeState" is "Heating".
                        It seems as if "ModeState" reverts to "Idle" and then changing the temperature from the OpenLuup device with the "SetSetpointURL" does not work. Is this something that can be changed?

                        therealdbT 1 Reply Last reply
                        0
                        • A ArcherS

                          @therealdb now it works! 🙂
                          I managed to find what I think was the error. I somehow some time ago have managed to copy all the VirtualDevices files into a sub-folder in the cmh-ludl folder. Stupid error my my side that gave a lot of strange behaviour...
                          I simply removed the sub-folder and reloaded the master branch from the "plugins" tab in AltUi and then it worked as it should.

                          The variables are now:
                          660ce881-17d4-49cf-a48c-de85f34d4b9d-image.png

                          In other words it should be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc i.e. with the mqtt:// prefix.

                          Thanks for a great addition to the plugin, I will play some more with this one and see that it works as supposed. 🙂

                          Edit: I discovered that the changing the temp on the OpenLuup device via "SetSetpointURL" does only work when the "ModeState" is "Heating".
                          It seems as if "ModeState" reverts to "Idle" and then changing the temperature from the OpenLuup device with the "SetSetpointURL" does not work. Is this something that can be changed?

                          therealdbT Offline
                          therealdbT Offline
                          therealdb
                          wrote on last edited by
                          #112

                          @archers said in openLuup: Tasmota MQTT Bridge:

                          In other words it should be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc i.e. with the mqtt:// prefix.

                          No need to use the prefix for the incoming messages, but it should discard it anyway.

                          I’ll take a look at setpoint, but I fear it’s not updating it because of the way heaters are coded. Maybe a thermostat in your case could be better, but it’ll need more work on my part.

                          --
                          On a mission to automate everything.

                          My MS Reactor contrib
                          My Luup Plug-ins

                          A 1 Reply Last reply
                          0
                          • therealdbT therealdb

                            @archers said in openLuup: Tasmota MQTT Bridge:

                            In other words it should be mqtt://tele/tasmota_E0D649/RESULT/=/IrReceived.IRHVAC.Power/=/Off etc i.e. with the mqtt:// prefix.

                            No need to use the prefix for the incoming messages, but it should discard it anyway.

                            I’ll take a look at setpoint, but I fear it’s not updating it because of the way heaters are coded. Maybe a thermostat in your case could be better, but it’ll need more work on my part.

                            A Offline
                            A Offline
                            ArcherS
                            wrote on last edited by
                            #113

                            @therealdb you are of course correct, I tested and it works both with and without the mqtt:// prefix for the incoming messages.

                            I changed the "CurrentTemperature" to a value that always will be lower than the setpoints ( in my case 10 degrees), by doing this the "ModeState" stays at "Heating" which means that the changing the temperature from the OpenLuup device works. Quite obvious of course when you think of it. 🙂

                            All in all it works as it should, thanks for the hard work!

                            My current variables with everything working:
                            6a49a7f0-4b5d-4242-9d6a-3b49f7eaaf01-image.png

                            therealdbT 1 Reply Last reply
                            1
                            • A ArcherS

                              @therealdb you are of course correct, I tested and it works both with and without the mqtt:// prefix for the incoming messages.

                              I changed the "CurrentTemperature" to a value that always will be lower than the setpoints ( in my case 10 degrees), by doing this the "ModeState" stays at "Heating" which means that the changing the temperature from the OpenLuup device works. Quite obvious of course when you think of it. 🙂

                              All in all it works as it should, thanks for the hard work!

                              My current variables with everything working:
                              6a49a7f0-4b5d-4242-9d6a-3b49f7eaaf01-image.png

                              therealdbT Offline
                              therealdbT Offline
                              therealdb
                              wrote on last edited by
                              #114

                              @archers great!

                              I’m thinking of creating a cooler device, because I need it myself. It’s really stupid imho that they created heaters, complex thermostats, but no humidifier, dehumidifier or cooler device. But since we’re not tied to Vera anymore, I guess it’s time to add them, as I did with my own virtual alarm/alarm partition.

                              --
                              On a mission to automate everything.

                              My MS Reactor contrib
                              My Luup Plug-ins

                              1 Reply Last reply
                              1
                              • B Buxton

                                @akbooer I did some debug on the error messages above and came up with the following. I placed some debug entries in the "L_TasmotaBridge.lua" to try to see what was causing the errors. First the code: under function _G.Tasmota_MQTT_Handler (topic, message)

                                  local myMessage = ""
                                  
                                  if message == nil then 
                                     myMessage = "Message is null" 
                                  else
                                	if message == "" then
                                	 myMessage = "Message is empty" 
                                	else
                                	 myMessage = message 
                                	end
                                  end
                                  
                                  _log ("JSON error info " .. myMessage)
                                

                                Which produced the following log errors and their context:

                                2021-04-16 20:48:01.335   openLuup.io.server:: MQTT:1882 connection from 10.17.2.28 tcp{client}: 0x55fac42317b8
                                2021-04-16 20:48:01.355   luup.tasmota:262: JSON error info Online
                                2021-04-16 20:48:01.356   luup.tasmota:262: JSON error: ?
                                2021-04-16 20:48:01.366   luup.tasmota:262: JSON error info Message is empty
                                2021-04-16 20:48:01.367   luup.tasmota:262: JSON error: ?
                                2021-04-16 20:48:01.423   openLuup.mqtt:: BedroomTV SUBSCRIBE to cmnd/power_BedroomTV/# tcp{client}: 0x55fac42317b8
                                2021-04-16 20:48:01.432   openLuup.mqtt:: BedroomTV SUBSCRIBE to cmnd/tasmotas/# tcp{client}: 0x55fac42317b8
                                2021-04-16 20:48:01.433   openLuup.mqtt:: BedroomTV SUBSCRIBE to cmnd/BedroomTV_fb/# tcp{client}: 0x55fac42317b8
                                
                                B Offline
                                B Offline
                                Buxton
                                wrote on last edited by
                                #115

                                @akbooer I think I found the culprit causing the random connection disconnects to Mosquitto. The LWT payload for a given device is a simple string, which doesn't seem to decode in the json decode call. So I added the below code to send a json string to the decoder. The errors have disappeared and I now see the LWT variable in the service variables. The variable reads "LWT : Online"

                                --line 165
                                local valid = {SENSOR = true, STATE = true, RESULT = true, LWT = true}
                                
                                --line 172
                                  -- begin code
                                  local info, err = json.decode (message)
                                   
                                  if message then
                                	if not info then  -- json did not decode because of single string parameter
                                		message = '{' .. '"' .. mtype .. '"' .. ':' .. '"' .. message .. '"' .. '}'
                                	end
                                  end
                                  -- end code
                                
                                  
                                  local info, err = json.decode (message)  
                                

                                This is probably not the way you would handle the error, but it does work.

                                akbooerA 2 Replies Last reply
                                2
                                • B Buxton

                                  @akbooer I think I found the culprit causing the random connection disconnects to Mosquitto. The LWT payload for a given device is a simple string, which doesn't seem to decode in the json decode call. So I added the below code to send a json string to the decoder. The errors have disappeared and I now see the LWT variable in the service variables. The variable reads "LWT : Online"

                                  --line 165
                                  local valid = {SENSOR = true, STATE = true, RESULT = true, LWT = true}
                                  
                                  --line 172
                                    -- begin code
                                    local info, err = json.decode (message)
                                     
                                    if message then
                                  	if not info then  -- json did not decode because of single string parameter
                                  		message = '{' .. '"' .. mtype .. '"' .. ':' .. '"' .. message .. '"' .. '}'
                                  	end
                                    end
                                    -- end code
                                  
                                    
                                    local info, err = json.decode (message)  
                                  

                                  This is probably not the way you would handle the error, but it does work.

                                  akbooerA Offline
                                  akbooerA Offline
                                  akbooer
                                  wrote on last edited by akbooer
                                  #116

                                  @buxton

                                  Great work!

                                  There may be some compatibility problem betwen JSON decoders – which one are you using (openLuup / Cjson / RapidJson) ? The beginning of the Startup Log should tell you...

                                  2021-06-06 20:08:48.470   openLuup.json::        version RapidJSON (0.6.1) + openLuup (2021.05.01)  @akbooer
                                  
                                  
                                  B 1 Reply Last reply
                                  0
                                  • B Buxton

                                    @akbooer I think I found the culprit causing the random connection disconnects to Mosquitto. The LWT payload for a given device is a simple string, which doesn't seem to decode in the json decode call. So I added the below code to send a json string to the decoder. The errors have disappeared and I now see the LWT variable in the service variables. The variable reads "LWT : Online"

                                    --line 165
                                    local valid = {SENSOR = true, STATE = true, RESULT = true, LWT = true}
                                    
                                    --line 172
                                      -- begin code
                                      local info, err = json.decode (message)
                                       
                                      if message then
                                    	if not info then  -- json did not decode because of single string parameter
                                    		message = '{' .. '"' .. mtype .. '"' .. ':' .. '"' .. message .. '"' .. '}'
                                    	end
                                      end
                                      -- end code
                                    
                                      
                                      local info, err = json.decode (message)  
                                    

                                    This is probably not the way you would handle the error, but it does work.

                                    akbooerA Offline
                                    akbooerA Offline
                                    akbooer
                                    wrote on last edited by
                                    #117

                                    @buxton

                                    Should now be fixed in development v21.6.8.

                                    My implementation, FYI:

                                      local tasmota, mtype = tasmotas: match "^(.-)/(%u+)"
                                      local valid do            -- thanks @Buxton for LWT as text message
                                        local j, t = "json", "text"
                                        valid = {SENSOR = j, STATE = j, RESULT = j, LWT = t} 
                                      end
                                      
                                      local decoder = valid[mtype]
                                      if not (tasmota and decoder) then 
                                        _log (table.concat ({"Topic ignored", topic, message}, " : "))
                                        return 
                                      end
                                      
                                      local info, err
                                      if decoder == "text" then
                                        info = {[mtype] = message}
                                      else
                                        info, err = json.decode (message)
                                        if not info then 
                                          _log ("JSON error: " .. (err or '?')) 
                                          _log ("Received message ignored: " .. message)
                                          return 
                                        end
                                      end
                                    
                                    B 1 Reply Last reply
                                    1
                                    • akbooerA akbooer

                                      @buxton

                                      Great work!

                                      There may be some compatibility problem betwen JSON decoders – which one are you using (openLuup / Cjson / RapidJson) ? The beginning of the Startup Log should tell you...

                                      2021-06-06 20:08:48.470   openLuup.json::        version RapidJSON (0.6.1) + openLuup (2021.05.01)  @akbooer
                                      
                                      
                                      B Offline
                                      B Offline
                                      Buxton
                                      wrote on last edited by
                                      #118

                                      @akbooer I used openluup json. I tried dkjson, but there was no change in effect.

                                      1 Reply Last reply
                                      0
                                      • akbooerA akbooer

                                        @buxton

                                        Should now be fixed in development v21.6.8.

                                        My implementation, FYI:

                                          local tasmota, mtype = tasmotas: match "^(.-)/(%u+)"
                                          local valid do            -- thanks @Buxton for LWT as text message
                                            local j, t = "json", "text"
                                            valid = {SENSOR = j, STATE = j, RESULT = j, LWT = t} 
                                          end
                                          
                                          local decoder = valid[mtype]
                                          if not (tasmota and decoder) then 
                                            _log (table.concat ({"Topic ignored", topic, message}, " : "))
                                            return 
                                          end
                                          
                                          local info, err
                                          if decoder == "text" then
                                            info = {[mtype] = message}
                                          else
                                            info, err = json.decode (message)
                                            if not info then 
                                              _log ("JSON error: " .. (err or '?')) 
                                              _log ("Received message ignored: " .. message)
                                              return 
                                            end
                                          end
                                        
                                        B Offline
                                        B Offline
                                        Buxton
                                        wrote on last edited by
                                        #119

                                        @akbooer Yes, that should work. However, the LWT MQTT specification calls for a standard message, so a tasmota upgrade could change the text message to a json message. Is there a way to test the message for a non-json string, and then filter accordingly. I fear the hardcoded flags will inevitably break....

                                        1 Reply Last reply
                                        0
                                        • akbooerA Offline
                                          akbooerA Offline
                                          akbooer
                                          wrote on last edited by
                                          #120

                                          Yes, I thought of doing it that way. A simple check for a leading [ or { should be adequate.

                                          This is the one thing I don’t like about Tasmota (as mentioned a while ago) … no real standards.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

                                          • Reactor (Multi-System/Multi-Hub) Announcements
                                            toggledbitsT
                                            toggledbits
                                            5
                                            121
                                            35.1k

                                          • Limit HA Entity in MSR
                                            toggledbitsT
                                            toggledbits
                                            0
                                            2
                                            6

                                          • Disaster recovery and virtualisation
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            5
                                            577

                                          • Remote access of Zwave stick from Z-wave server
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            3
                                            301

                                          • Organizing/ structuring rule sets and rules
                                            G
                                            gwp1
                                            0
                                            5
                                            348

                                          • Moving MSR from a QNAP container to RP 5 - some issues
                                            G
                                            gwp1
                                            0
                                            5
                                            293

                                          • Widget deletion does not work and landing page (status) is empy
                                            G
                                            gwp1
                                            0
                                            4
                                            264

                                          • Need help reducing false positive notifications
                                            T
                                            tamorgen
                                            0
                                            7
                                            459

                                          • Deleting widgets
                                            toggledbitsT
                                            toggledbits
                                            0
                                            4
                                            440

                                          • MQTT configuration question
                                            tunnusT
                                            tunnus
                                            0
                                            11
                                            592
                                          Powered by NodeBB | Contributors
                                          Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Unsolved